- 浏览: 260820 次
- 性别:
- 来自: 新乡
文章分类
- 全部博客 (227)
- servciemix (10)
- db (18)
- javaTools (4)
- hibernate (31)
- web (3)
- spring (14)
- design pattern (4)
- java security (3)
- portal (1)
- ejb (6)
- session (2)
- java_lang (21)
- jbpm (29)
- struts (7)
- orgRights (2)
- project manager Jira (7)
- 跨库事务 (2)
- mysql (14)
- ubuntu (7)
- osgi (9)
- maven ant make (4)
- 分布式 高并发 高性能 (5)
- virgo-dm_server (0)
- osgi web (3)
- platform (1)
- smooks (1)
- business (1)
- 职场生涯 (14)
- Java编码格式 (2)
- web服务 (1)
- 计算机使用 (1)
- 健康工作生活的保障,工作中务必抛掉的不良心态 (4)
- 电信-网络监控 (1)
- 多线程-multithread (1)
- 海量数据-高性能 (2)
- Mybatis (1)
- web开发平台研发 (0)
- oracle (0)
- 应用服务器调优 (0)
- web前端 (0)
- servlet-jsp (0)
- tomcat (2)
- newtouch (1)
- portal_liferay (2)
- version control (1)
- apm-impact (2)
- tools (1)
- 研发管理 (1)
- 电商业务 (1)
- 生鲜电商市场调查 (0)
- PBX (0)
- 房东 (0)
最新评论
-
lifuchao:
...
权限问题 -
Branding:
谢谢,受教了,另外,CONN AS SYSDBA,必须是在操作 ...
Oracle密码忘记了怎么办? -
zhuchao_ko:
...
Portal实现原理 -
败类斯文:
不知道改哪里。。。木有见到红色。。表示悟性低了、、
jira error: Neither the JAVA_HOME nor the JRE_HOME environment variable is defin -
c__06:
正文:假如事务我是这样定义的: <tx:method n ...
Spring中Transactional配置
w.write(new String("中文网".getBytes("utf-8"),"GBK"));
这样的写法是不对的,保存在虚拟机中的不是utf-8编码,而是utf-8编码变种,虚拟机的内部编码是固定的,不会改变。
getBytes("utf-8")是把保存在虚拟机中的中文编码成utf-8格式,而不是虚拟机中本身就是utf-8编码,new String(byte,"gbk")也不是让虚拟机内部编码为gbk,而是虚拟机以gbk方式解析传入编码,然后将编码转换成内部编码(utf-8编码变种),根据这个道理,你用utf-8格式获得虚拟机内部编码类型,然后再用GBK解析utf-8格式的编码,当然不能解析。
所以如果你要获得gbk的编码,必须要getBytes("GBK")才行,然后解析就用new String(byte,"gbk");
你这种写法是有问题的 只有new String("中文网".getBytes("GBK"),"GBK")这种方法才正确,但是这么写又是没有意义的。
不过有一个形式例外,就是new String(str.getBytes("ISO-8859-1"),"GBK"),为什么呢,因为这他们其实是同一种编码方式,只不过一个以英文编码方式解析,一个以中文方式解析而已。而utf-8与gbk根本就是两种编码方式,是不能互相解析的。
在Java中,如果我们用java.io.FileReader或者java.io.FileWriter来读写文件的话,固然我们可以通过 java.io.BufferedReader和java.io.BufferedWriter来提高效率,但是我们会发现在FileReader和 FileWriter中我们只能获取编码方式,而不能设置。这样,在FileReader和FileWriter中的编码设置只能服从于一些更为底层的设置,那么在读写多种语言编码的文件时就很容易出现乱码。
另外一种方法就是采用java.io.FileInputStream/java.io.InputStreamReader和 java.io.FileOutputStream/java.io.OutputStreamWriter来解决这个问题。在 InputStreamReader和OutputStreamWriter中,可以通过指定编码方式来完成UTF-8文件的读写。
比如:
java.io.BufferedWriter writer = null;
java.io.FileOutputStream writerStream = new java.io.FileOutputStream(filename);
writer = new java.io.BufferedWriter(new java.io.OutputStreamWriter(writerStream, "UTF-8"));
// do something
// writing file
writer.close();
这样的写法是不对的,保存在虚拟机中的不是utf-8编码,而是utf-8编码变种,虚拟机的内部编码是固定的,不会改变。
getBytes("utf-8")是把保存在虚拟机中的中文编码成utf-8格式,而不是虚拟机中本身就是utf-8编码,new String(byte,"gbk")也不是让虚拟机内部编码为gbk,而是虚拟机以gbk方式解析传入编码,然后将编码转换成内部编码(utf-8编码变种),根据这个道理,你用utf-8格式获得虚拟机内部编码类型,然后再用GBK解析utf-8格式的编码,当然不能解析。
所以如果你要获得gbk的编码,必须要getBytes("GBK")才行,然后解析就用new String(byte,"gbk");
你这种写法是有问题的 只有new String("中文网".getBytes("GBK"),"GBK")这种方法才正确,但是这么写又是没有意义的。
不过有一个形式例外,就是new String(str.getBytes("ISO-8859-1"),"GBK"),为什么呢,因为这他们其实是同一种编码方式,只不过一个以英文编码方式解析,一个以中文方式解析而已。而utf-8与gbk根本就是两种编码方式,是不能互相解析的。
在Java中,如果我们用java.io.FileReader或者java.io.FileWriter来读写文件的话,固然我们可以通过 java.io.BufferedReader和java.io.BufferedWriter来提高效率,但是我们会发现在FileReader和 FileWriter中我们只能获取编码方式,而不能设置。这样,在FileReader和FileWriter中的编码设置只能服从于一些更为底层的设置,那么在读写多种语言编码的文件时就很容易出现乱码。
另外一种方法就是采用java.io.FileInputStream/java.io.InputStreamReader和 java.io.FileOutputStream/java.io.OutputStreamWriter来解决这个问题。在 InputStreamReader和OutputStreamWriter中,可以通过指定编码方式来完成UTF-8文件的读写。
比如:
java.io.BufferedWriter writer = null;
java.io.FileOutputStream writerStream = new java.io.FileOutputStream(filename);
writer = new java.io.BufferedWriter(new java.io.OutputStreamWriter(writerStream, "UTF-8"));
// do something
// writing file
writer.close();
发表评论
-
Java程序员常用工具集
2012-05-23 14:30 949我发现很多人没办 ... -
基于JDBC的数据库连接池技术研究与设计
2011-12-16 14:34 733基于JDBC的数据库连接池技术研究与设计 摘 要 本文 ... -
关于jvm的设置
2011-12-16 10:38 1457一、Java heap space (一 ... -
JVM内存管理深入Java内存区域与OOM
2011-12-15 16:47 870JVM内存管理深入Java内存 ... -
JVM内存管理深入垃圾收集器与内存分配策略
2011-12-15 16:45 1091JVM内存管理深入垃圾收 ... -
jdbc 连接池小结
2011-12-15 16:43 853java基础面试题 主题:[我的工具箱] jXLS ... -
JVM参数调优
2011-12-15 14:35 780JVM参数调优是个很头痛 ... -
Java对象和JSON互转换利器-Gson
2011-11-04 17:22 1814Java对象和JSON互转换利器-Gson . 2008-07 ... -
java.lang.OutOfMemoryError: PermGen space及其解决方法
2011-10-26 17:52 778java.lang.OutOfMemoryError: Per ... -
java.sql.Date,java.sql.Time和java.sql.Timestamp
2011-09-06 14:11 1073java.sql.Date,java.sql.Time和jav ... -
对泛型进行反射
2011-05-05 19:06 1196对泛型进行反射 今天在用反射的时候突然想到,之前从来没有对泛 ... -
Java反射经典实例 Java Reflection Cookbook
2011-05-05 19:05 739Java反射经典实例 Java Reflection Cook ... -
java 反射机制详解
2011-05-05 19:04 668java 反射机制详解 Java 的反射机制是使其具有动态特性 ... -
一次Java垃圾收集调优实战
2011-05-05 19:03 725一次Java垃圾收集调优实战 1 资料 * JDK5 ... -
利用反射和泛型让JDBC编程方便点
2011-05-05 19:02 806利用反射和泛型让JDBC编程方便点 一直以来使用JDBC编 ... -
利用反射取得泛型信息
2011-05-05 18:22 608利用反射取得泛型信息 一、传统通过反射取得函数的参数和返回值 ... -
深入剖析JAVA反射机制强大功能
2011-04-08 20:47 839* 深入剖 ... -
关于Java反射机制的一个实例
2011-04-08 20:46 797* 关于Java反射机制的一个实例 ... -
Java虚拟机内部构成浅析
2011-04-08 20:44 771* Java虚拟 ... -
详解reflect Java的反射机制
2011-04-08 20:42 503* 详解refle ...
相关推荐
java编码规范 java编码规范 java编码规范 java编码规范
华为JAVA编码规范,有不少可以借鉴的地方~
Java编码规范.doc Java编码规范.doc Java编码规范.doc Java编码规范.doc
华为JAVA编码规范.pdf
java编码规范考试题答案.doc
阿里巴巴java编码规范 ,Java 并发编程培训(阿里巴巴) 《阿里巴巴Java开发手册》,首次公开阿里官方Java代码规范标准。这套Java统一规范标准将有助于提高行业编码规范化水平,帮助行业人员提高开发质量和效率、大大...
JAVA编码规范完全教程,内含国内主流大型JAVA项目开发编码详细规范说明,及国际大型公司JAVA编码规范详细说明,及编码的注意事项和因为不规范编码方式而可能产生的代码BUG,本文档是JAVA专业化编程的一把利器。
Java编码规范(Java Coding Standard) oiNSFT-BS-OT0105 V3.0 2005-5-11 东软集团有限公司 商用软件事业部 版权所有 中国 沈阳浑南高新技术产业开发区 东软软件园
Java编码规范(详细)Java编码规范(详细)Java编码规范(详细)Java编码规范(详细)Java编码规范(详细)Java编码规范(详细)
java编码规范
java编码注释 apidoc自动生成 myeclipse的模板写法
java 编码规范文档
JAVA编码规范培训
阿里JAVA编码规范
java编码规范.pdf
java编码规范 不错的资源。。。。。。。。
这是sun公司的Java编码规范,好的编码规范是编写可读性好的程序的关键,所以拿来和大家共享!
java编码规范,非常详细 每个switch-case语句都有最后一个default以确保处理了全集。switch中,每一条case分支必须使用break语句结束
Java 编码规范, chm版 ~~~~~~