Java中编码及转化相关问题
来源:互联网 发布:淘宝商城孕妇秋冬装 编辑:程序博客网 时间:2024/04/29 22:20
Java中编码及转化相关问题
1. 在Java中,内存存放方式是以Unicode方式进行的,高位在前,与windows中相反。例如:
String str = "中";
for (int i=0; i<str.length(); i++) {
int nHigh = 0xff & (str.charAt(i) >> 8);
int nLow = 0xff & str.charAt(i);
System.out.println(Integer.toHexString(nHigh) + ", " + Integer.toHexString(nLow));
输出:4e 2d 这说明内存中存放的是Unicode,并且高位在前;而在windows上则发现为:2d 4e
2. 常见编码转换相关问题
StringToBytes: 在java中String都是Unicode,转换为bytes主要是高低位存放问题,如果bytes是在java中使用处理则高位在前,如果是在windows使用处理,则相反。
int nHigh = 0xff & (str.charAt(i) >> 8); //高位
int nLow = 0xff & str.charAt(i); //地位
在java中使用处理:
Bytes[i] = nHigh;
Bytes[i+1] = nLow;
反过来,bytesToString也是同样的道理。
但如果bytes中存放的是其他编码数据,可以采用如下方法:
a. 如果datas是utf-8编码的:str = new String(datas,”utf-8”); 注意此时str中存放的是Unicode编码。
b. 如果datas是ansi编码的:str = new String(datas,”gbk”); 注意此时str中存放的是Unicode编码。
3. 关于@符号显示
例如:String str = “@1234”; 在部分手机中会出现显示不出@符号。
解决办法为: str = String.valueOf(“/u00A9”) + “1234”;
- Java中编码及转化相关问题
- Java及相关字符集编码问题研究
- Java及相关字符集编码问题研究
- Java及相关字符集编码问题研究
- Java及相关字符集编码问题研究
- Java及相关字符集编码问题研究
- Java及相关字符集编码问题研究
- Java及相关字符集编码问题研究
- JAVA及相关字符集编码问题研究
- Java及相关字符集编码问题研究
- Java及相关字符集编码问题研究
- JAVA及相关字符集编码问题研究
- Java相关编码问题
- Java编码相关问题
- 经典:Java及相关字符集编码问题研究
- 经典:Java及相关字符集编码问题研究 之二
- 经典:Java及相关字符集编码问题研究
- 经典:Java及相关字符集编码问题研究
- 堆和栈的区别(转过无数次的文章) 收藏
- 《我杀了他》凶手推导
- 字符串转64位(strtol,_atoi64)
- Java内存溢出的详细解决方案
- C/C++ 宏详解
- Java中编码及转化相关问题
- oracle 10g sga 設置
- HP 小机定位I/O 卡,更换I/O 卡
- 回合制的MMORPG中分离战斗
- HP-UX oracle RAC 双机实践
- 关于asp.net生成静态页
- Eclipse下的Java反编译插件安装
- 服务器数据发展
- pymssql的安装记录(Linux)