Date: Thu, 20 May 2004 17:05:20 -0400 From: "Sergei Komarov" <sk@pressevent.com> To: <freebsd-java@freebsd.org> Subject: JDK142_p6 - non-ascii encoding problem? Message-ID: <009301c43eae$296f7b20$1401a8c0@na.corp.yr.com>
next 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?009301c43eae$296f7b20$1401a8c0>