对java里面的字符编码的进一步了解
来源:互联网 发布:dis mac-add 编辑:程序博客网 时间:2024/05/01 05:27
最近,帮一位友人维护网站时碰到了一些关于字符编码转换的问题,几经周折终于搞定了,虽说不上什么拨开云雾见月明,但一些收获总是有的。大概的情况是,我要在其他的网站上截取网页信息,并将其放在我的网页上显示,后来由于目标网站上网页的编码改变了,就导致了我的页面显示的一大堆乱码了。
经过一些分析,得到问题的产生过程:
1。在目标网站上的字符编码由原来的GBK改为unicode了。
2。在我网站上的代码把改变后的unicode字符当成GBK来读取,即读取后生成的String是把
unicode字符当成GBK来转换成unicode。
这样的转换自然会导致乱码了。
解决的过程:
解决的方法有两个,我首先想到的一个是在底层自己用String的方法进行转换,不过这个方法原理上可行,但是实际上由于java底层代码的问题使得转换回来的编码会出现问题。后来看到了网络连接数据流类的构造函数可选择字符集,才知道可以直接让程序把远程网站的unicode字符正确读取了,具体的代码如下:
InputStreamReader read = new InputStreamReader(conn.getInputStream(),"UTF-8");
原来问题是这么的简单啊~~~
后记:
虽然前面用String的方法不行,不过它的原理倒是值得参考:String里 getBytes("GBK"); 是把String里面所保存的unicode字符转换为GBK的一组byte串。而String的构造方法 String(bytes,"GBK"); 是把bytes里面存储的GBK字符转换为新String对象里面的unicode字符。
- 对java里面的字符编码的进一步了解
- 对slideToggle()的进一步了解
- 对find命令的进一步了解
- Vim里面的字符编码
- Vim里面的字符编码
- 同步的进一步了解
- javascirpt 进一步的了解
- java对字符的编码处理
- java对字符的编码处理
- java对字符的编码处理
- java对字符的编码处理
- java对字符的编码处理
- java对字符的编码处理
- java对字符的编码处理
- java对字符的编码处理
- java 对字符编码的处理
- java对字符的编码处理
- 对Java instanceof的进一步理解
- An Exception Handling Framework for J2EE Applications(onjava)
- Windows Server 2003 和 Windows 2000 提供大内存支持(ZT MSDN)
- ColdFusion中常用几种字符串查找函数
- 内存管理:算法及其c/c++实现 翻译三
- SUN J2EE企业应用技术学习计划
- 对java里面的字符编码的进一步了解
- 程序员生涯之我见 找到自己的兴趣所在
- Linux简史
- eclipse hot key
- 制作基于软盘的Linux系统
- Windows多线程技术研究(二):多线程基本概念
- VLAN技术白皮书
- 持久层数据存取技术
- 抄来的