这样的问题有解决方案吗?
String str = new String("你好吗?");//默认编码是unicode吧?
byte[] data = str.getBytes();//这里获取到的字节数组不存在编码格式的问题吧?
String str2 = new String(data,"GBK");//str2的字符编码是GBK的格式?
//那么如何获取str2的编码格式呢?
String str = new String("你好吗?");//默认编码是unicode吧?
byte[] data = str.getBytes();//这里获取到的字节数组不存在编码格式的问题吧?
String str2 = new String(data,"GBK");//str2的字符编码是GBK的格式?
//那么如何获取str2的编码格式呢?
解决方案 »
- 字符串转String数组的问题,请高手指点!
- java socket有没有选项可以预览数据?
- 公司新安装一个软件(bitmap viewer),是用java开发的,该软件运行时会报“out of memory error”的错误,应如何配置?
- 一道Java题,请帮忙验证一下是不是答案有错,谢谢
- javascript的变量值过长问题
- 学习JAVA之前一定要学好C吗?
- 高分求教:java/sql/Savepoint包的问题。
- 寻人:◎◎◎我暗忧◎◎◎
- log4j 如何通过配置文件实现日志信息入库,不写代码只是写配置文件?????
- 哪位可以提供jbuilder的学习书籍和网站吗,最好是中文版的(80份)
- 在线等待求解JAVA IO问题
- java与c语言的对照
public String getEncoding()返回此流使用的字符编码的名称。
2、String str = new String("你好吗?");//默认编码是unicode吧? - 这个语句如果要编译通过的话,需要两个条件中的一个:(1)系统默认编码是GBK或者能够覆盖GBK编码的其他编码(2)在编译时指定-encoding为GBK或者能够覆盖GBK编码的其他编码
3、上面那条语句中的注释答案为:不一定,严格地讲,默认编码是系统默认编码。例如,中文系统的默认编码为GBK.
4、byte[] data = str.getBytes();//这里获取到的字节数组不存在编码格式的问题吧?
这个地方的确不存在什么问题,也不应该有什么问题。详细的说,这里Java会对字符串的字符用本地系统默认编码格式进行编码(char[]-〉byte[]),如果本地默认系统的编码不被JVM支持,就采用ISO-8859-1进行编码。
5、String str2 = new String(data,"GBK");//str2的字符编码是GBK的格式?
这里,指定的编码适用于解码的(byte[]->char[])。
6、//那么如何获取str2的编码格式呢?
不需要获取,就是本地系统的默认编码。一定要获取的话,用System.getProperty("file.encoding");
=============================================================================================
Java中的字符类型可以表示任何一个Unicode编码中的字符,但是,这并不意味着Java源代码的默认编码是Unicode. 相反,Java源代码可以是任何类型的编码。这里,如果想更深入地了解,编码在Java程序各个阶段的转换细节,请参考:http://www.ingrid.org/java/i18n/utf-16/。
String str = new String("你好吗?");//默认编码是unicode
byte[] data = str.getBytes();//平台默认编码 eclipse是gbk,windows下记事本也是gb2312(gbk的子集)
String str2 = new String(data,"GBK");//str2的字符编码是unicode(java默认编码)
//貌似不好获取。java中所有的东西都是unicode存储的。 String可以看源码是 char[]数组存储的。
?
Java 中,字符串类 java.lang.String 处理的是 UNICODE 字符串,不存在编码格式的概念
String str=new String("你好吗?");//默认编码是unicode吧?
//"你好吗?"是一个字符串,他的每一个字符都对应一个唯一的序号--两个字节(unicode规则),String类就是处理这些序号的。
byte[] data= str.getBytes();//这里获取到的字节数组不存在编码格式的问题吧?
//字节数组。本身并没有编码格式,其实只有进行字符和字节的转化时才有这个概念,但按不同的编码取的数组是不同的。
String str2=new String(data,"GBK");//str2的字符编码是GBK的格式?//那么如何获取str2的编码格式呢?
//还是最上面那句话,java.lang.String 处理的是 UNICODE 字符串;这个语句会把字节数组data按“gbk”的编码形式来转成字符串,而String类还是把这个字符串按unicode来处理,
//第二个问题也就不是问题了,str2并没有编码格式。。一定要说有的话,就只是unicode,永远都是