JAVA 字符串 字节 编码问题 高手来 30

ANSI字符串(如GB2312)转UNICODE字符串(如UTF-8)的原理是什么?前者2个字节存一个中文字符,后者2个字节存的是字符的序号,他们是什么原理转换的?如下是... ANSI字符串(如GB2312)转UNICODE字符串(如UTF-8)的原理是什么?前者2个字节存一个中文字符,后者2个字节存的是字符的序号,他们是什么原理转换的?
如下是规则:
ANSI 字符串 byte[]
UNICODE 字符串 String
字节串→字符串 string = new String(bytes, "encoding")
字符串→字节串 bytes = string.getBytes("encoding")
求原理。
展开
 我来答
townsin
2013-09-23 · TA获得超过452个赞
知道小有建树答主
回答量:594
采纳率:50%
帮助的人:510万
展开全部
  1. 编程序的时候如果:String str="中文";在存成文件时,需要把这段文字存为数据(每个字节byte=8bit),即要编码,按照不同的编码方式(比如gb2312或者unicode),所以保存文件的时候需要指定编码,一般编辑器默认跟系统一致。java编译器,将源程序编码时,采用的是unicode编码方式,所以存在class文件中的字节码里的中文常量也是unicode的。这是源程序

  2. 在程序处理时,你如果想把str="中文",以一定的编码方式变成存储时的数据(byte数组),就需要str.getBytes("encoding"),同理,你从文件或者其他地方读取到数据后,想转换成字符串,那么你就要知道他之前是用什么编码方式变成的数据,然后用new String(bytes, "encoding")
    就可以了。

追梦异
2013-09-23
知道答主
回答量:21
采纳率:0%
帮助的人:10.4万
展开全部
你的先了解各个编码的存储中文和英文的各种不同存储的位数,以及不同编码的区别和移位方式,这样再去了解一下源码就清楚了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
KeamSpring
2013-09-23 · 超过22用户采纳过TA的回答
知道答主
回答量:122
采纳率:0%
帮助的人:63.5万
展开全部
应该是移位吧,可以打开源码看一下呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wq86019595
2013-09-23 · 超过20用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:35.2万
展开全部
可以看源码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式