Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 May 2004 10:05:19 +0300 (EEST)
From:      Anton Yudin <toha@ib.com.ua>
To:        freebsd-java@freebsd.org, sk@pressevent.com
Subject:   Re: JDK142_p6 - non-ascii encoding problem?
Message-ID:  <200405210705.i4L75JZv040543@ib.com.ua>
In-Reply-To: <009301c43eae$296f7b20$1401a8c0@na.corp.yr.com>

next in thread | previous in thread | raw e-mail | index | archive | help
>
> 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 ...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200405210705.i4L75JZv040543>