萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 486|回复: 0

1-1-16-1-6 文问题的解决!

[复制链接]
发表于 2003-2-8 00:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
发信人: zerostate (零态), 信区: Java      
标  题: 中文问题的解决!
发信站: BBS 水木清华站 (Wed Feb 28 21:29:22 2001)

问题背景:
将一个string变成一个InputStream,然后把流传给Properties处理,返回一个string
由JDK的help知道,Properties是将string当作ascii读取。
问题:
最后输出的字符串中的中文无法正常显示。
问题分析:
一共有四个环节影响中文显示:
1.<%@ page contentType="text/html;charset=gb2312" %>
它是在jsp编译时影响,考虑到out.print,最好不要不用。
2.将string读入InputStream有两种变化
   2.1直接用StringBufferInputStream(string)
   2.2先将string转成byte[],再用ByteArrayInputStream(b)
      其中又有gb2312 ISO-8859-1 等多重方法
3.对输出字符串变化编码,按一定的编码方式读入byte[],gb2312 ISO-8859-1 等
4.将byte[]按一定编码方式存入一个string

如果对编码方式考虑3种,共有128种可能性。
由于对java的机理不很清楚,不得不采用遍历法。开始时比较傻,一次次改,效率非常低
后来把3和4的可能组合全部写出来,只修改2,很快找到解决方法。
用gb写成byte[]->InputStream->iso读byte[]->gb写成string
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-6-15 04:47 , Processed in 0.048925 second(s), 16 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表