现在有两个问题。
1.String类有个getBytes(encoding)方法现在有两个字符串,都表示“中国”两个字。但是一个是GBK格式的(名字教GBKString),一个是utf-8格式的(UTFString)。
问题是 GBKString.getBytes("GBK") 和UTFString.getBytes("utf-8"); 我试了试,感觉应该是不等。但是如果不等的话,
new String(GBKString.getBytes("GBK"),"GB2312");应该也是不等于
new String(UTFString.getBytes("utf-8"),"GB2312");的。但是他们都是汉字中国。
2.一个jsp文件,其中有<%@ page contentType="text/html;charset=ISO8859_1" %> 我用记事本打开,显示正常。用eclipse 显示乱码。eclipse显示的时候是不是会用iso8859-1解释这个文件造成乱码。还是
我以前用英文版的dreamweaver编辑页面的时候,在设计视图打的汉字看代码都成了iso8859-1的转义形式,现在中文版的,旧的iso8859-1页面可以正常显示,代码视图也是汉字显示。自己生成jsp页面改为charset=ISO8859_1"后,再次打开后他会自动改成gb2312,不知道问什么。总之,我脑子里面关于编码的问题很混乱,网上都是千篇一率的解决办法,我想知道原因。请大家多多指点。
1.String类有个getBytes(encoding)方法现在有两个字符串,都表示“中国”两个字。但是一个是GBK格式的(名字教GBKString),一个是utf-8格式的(UTFString)。
问题是 GBKString.getBytes("GBK") 和UTFString.getBytes("utf-8"); 我试了试,感觉应该是不等。但是如果不等的话,
new String(GBKString.getBytes("GBK"),"GB2312");应该也是不等于
new String(UTFString.getBytes("utf-8"),"GB2312");的。但是他们都是汉字中国。
2.一个jsp文件,其中有<%@ page contentType="text/html;charset=ISO8859_1" %> 我用记事本打开,显示正常。用eclipse 显示乱码。eclipse显示的时候是不是会用iso8859-1解释这个文件造成乱码。还是
我以前用英文版的dreamweaver编辑页面的时候,在设计视图打的汉字看代码都成了iso8859-1的转义形式,现在中文版的,旧的iso8859-1页面可以正常显示,代码视图也是汉字显示。自己生成jsp页面改为charset=ISO8859_1"后,再次打开后他会自动改成gb2312,不知道问什么。总之,我脑子里面关于编码的问题很混乱,网上都是千篇一率的解决办法,我想知道原因。请大家多多指点。
java中的字符串都是unicode编码,不存在编码转换问题.
如果需要离开java环境,或者需要存储就会使用一种编码方式转成字节,当然根据这个字节又可以转回来,只要编码一致就可以.
window->preference->General->Content Types 打开text节点,选中 *.jsp 把下面的Default encoding改为ISO-8859-1,然后update就可以了
java中的字符串都是unicode编码,不存在编码转换问题.
如果需要离开java环境,或者需要存储就会使用一种编码方式转成字节,当然根据这个字节又可以转回来,只要编码一致就可以.
java技术交流,讨论java的技术细节和最新技术。欢迎中高级程序员加入讨论。QQ群:3001581(人员有限,不接收初学者,谅解)
> new String(UTFString.getBytes("utf-8"),"GB2312");的。但是他们都是汉字中国。??new String(UTFString.getBytes("utf-8"),"GB2312") 应该是由乱码组成的字符串,不可能是“中国”两个字!
> new String(UTFString.getBytes("utf-8"),"GB2312");的。但是他们都是汉字中国。??new String(UTFString.getBytes("utf-8"),"GB2312") 应该是由乱码组成的字符串,不可能是“中国”两个字!
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
不是吧 ,我把utf-8的字符转变为为gb2312就成了乱码了。
window->preference->General->Content Types 打开text节点,选中 *.jsp 把下面的Default encoding改为ISO-8859-1,然后update就可以了
+++++++++++++++++++++++++++++++
我试了,原来默认就是iso8859-1的格式呀。
window->preference->General->Content Types 打开text节点,选中 *.jsp 把下面的Default encoding改为ISO-8859-1,然后update就可以了
+++++++++++++++++++++++++++++++
我试了,原来默认就是iso8859-1的格式呀。
new String(GBKString.getBytes("GBK"),"GB2312");应该也是不等于
new String(UTFString.getBytes("utf-8"),"GB2312");的。但是他们都是汉字中国。new String(任何编码字串,"GB2312");
不管是什么编码的字串,这两条语句最终又都按GB2312来编码,结果应该都是“中国”吧。除非UTF-8把字节内容作了修改。2 <%@ page contentType="text/html;charset=ISO8859_1" %>
这里的ISO8859_1是下划线,ISO-8859-1是中划线