From owner-freebsd-java@FreeBSD.ORG Fri May 21 01:42:17 2004 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0B38616A4CE for ; Fri, 21 May 2004 01:42:17 -0700 (PDT) Received: from ib.com.ua (v92-65.dialup.lintec.net.ua [193.243.156.65]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3908743D4C for ; Fri, 21 May 2004 01:42:12 -0700 (PDT) (envelope-from toha@ib.com.ua) Received: from ib.com.ua (localhost.ib.com.ua [127.0.0.1]) by ib.com.ua (8.12.10/8.12.10) with ESMTP id i4L8ft3s042424; Fri, 21 May 2004 11:41:56 +0300 (EEST) (envelope-from toha@ib.com.ua) Received: (from root@localhost) by ib.com.ua (8.12.10/8.12.10/Submit) id i4L75JZv040543; Fri, 21 May 2004 10:05:19 +0300 (EEST) (envelope-from toha) Date: Fri, 21 May 2004 10:05:19 +0300 (EEST) From: Anton Yudin Message-Id: <200405210705.i4L75JZv040543@ib.com.ua> To: freebsd-java@freebsd.org, sk@pressevent.com In-Reply-To: <009301c43eae$296f7b20$1401a8c0@na.corp.yr.com> Subject: Re: JDK142_p6 - non-ascii encoding problem? X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2004 08:42:17 -0000 > > Hello, > > I'm running FreeBSD 4.9-STABLE, jdk1.4.2_p6 and Tomcat 4.1.30 or 5.0.24 > and keep having a problem with non-Latin1 characters output by JSPs. > This problem seems to be specific to FreeBSD as it doesn't occur on > Windows (I'm testing Solaris as well). > > A JSP receives a request attribute containing a string of non-Latin1 > characters (Cyrillic Windows, Simplified Chinese gb2312, etc.) > > When the string is output within a page via c:out, struts bean:write or > <%=name%>, JspWriter converts all non-Latin1 chars to '?'. > > I can correct it with either of the following tricks, but the > application is too big to replicate them in all JSPs: > <%@page language="java" > contentType="text/html;charset=gb2312" > import= "java.nio.charset.*, > java.nio.CharBuffer, > java.nio.ByteBuffer" > %> > <% > String orig = (String) request.getAttribute("original"); > String encoded = new String(orig.getBytes("ISO-8859-1"),"gb2312"); > %> > ... > <%= encoded %> > ... > <% > Charset gb2312 = Charset.forName("gb2312"); > Charset iso = Charset.forName("ISO-8859-1"); > CharBuffer cb = CharBuffer.wrap(orig); > ByteBuffer bb = iso.encode(cb); > %> > ... > <%= gb2312.decode(bb) %> > > Am I missing something in the configuration of FreeBSD and JDK? > > I tried setting > LANGUAGE zh_CN > LANG zh_CN.gb2312 > LC_TYPE zh_CN > LC_ALL zh_CN > MM_CHARSET gb2312 > > In /etc/profile etc., but to no avail. Perhaps someone knows the > solution to this? > > Thanks in advance, > > Sergei Komarov > I think UTF-8 will help you ...