socket中文乱码怎么解决(100分相送)

急,在线等。
给个具体的代码
代码可行,马上结贴
[36 byte] By [xiariguji-夏日孤寂] at [2008-1-6]
# 1
采用过滤器吧,省得每个文件都设置
在tomcat的webapps\servlets-examples\WEB-INF\classes\filters目录下有个SetCharacterEncodingFilter.java,把这个复制出来
在你项目的web.xml中加以下的代码:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.aa.filter.SetCharacterEncodingFilter</filter-class>(这里是SetCharacterEncodingFilter.java的路径)
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>(这里要和jsp页面中的编码 统一)
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

wjddjsm-菜鸟 at 2007-10-14 > top of Msdn China Tech,Java,Web 开发...
# 2
wjddjsm(菜鸟) ( ) 信誉:100 Blog
你的方法解决不了低层socket的中文问题。
这个问题我已解决。谢谢楼上的各位
xiariguji-夏日孤寂 at 2007-10-14 > top of Msdn China Tech,Java,Web 开发...
# 3
恭喜恭喜,怎么解决的?能否共享一下
zhangj0571-笨鸟飞飞 at 2007-10-14 > top of Msdn China Tech,Java,Web 开发...
# 4
如果是从c或别的发过来的socket信息的话,必须知道其字符编码及高低位对齐等,比较难办
如果是java写的的话,就把数据打包成一个对象,用writeObject写到socket中,再用readObject读出来就行了
# 5
晕,治标不治本。
# 6
public String(byte[] bytes,
String charsetName)
throws UnsupportedEncodingException构造一个新的 String,方法是使用指定的字符集解码指定的字节数组。新的 String 的长度是一个字符集函数,因此不能等于字节数组的长度。
当给定字节在给定字符集中无效的情况下,该构造方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetDecoder 类。

参数:
bytes - 要解码为字符的字节
charsetName - 受支持的 charset 的名称
抛出:
UnsupportedEncodingException - 如果指定字符集不受支持

wmzsl-王明哲 at 2007-10-14 > top of Msdn China Tech,Java,Web 开发...
# 7
同意wmzsl(王明哲)的办法!
gongzhy-2369 at 2007-10-14 > top of Msdn China Tech,Java,Web 开发...