关于编码的一些问题

百里马 2014-08-12 10:18:59
1、Unicode到底是起一个什么作用?
比如我一个日文的文本,用的是日文的local编码,然后我本地没有装日文编码,然后我想在电脑里看,把这个文本转换成Unicode编码就可以了,是这个意思吗?
另外,好像是两种不同编码的文本不能直接转换,要先转换成Unicode,然后通过Unicode转换成另外一种编码?是这个意思吗?

2、‘例如“奎”的Unicode编码是594E,“乙”的Unicode编码是4E59。如果我们收到UTF-16字节流“594E”,那么这是“奎”还是“乙”?’,既然收到了“594E”,那为什么不能确定是“奎”字?为什么要把它理解成“4E59”?

3、BOM这个东西在传输文件的时候到底要不要传?比如说UTF-16要标明字节序,那这个BOM应该是必须的吧
...全文
69 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
vnvlyp 2014-08-12
  • 打赏
  • 举报
回复
1、Unicode是为了统一编码才制定的,不然的话不同国家地区都用自己的编码,那一台电脑要兼容全世界语言的话就要安装几百种编码,这太不方便了。有了Unicode,只要你把文字用Unicode编码,然后发给别人,别人只要有Unicode编码就行了,不用再安装你的本地特色的编码。你日文转换的那个就是一个典型案例。 一般来说其他两种不同的编码不会互相转换,因为不存在一一对应关系,比如日文的本地编码和中文的本地编码就不存在这种关系,这样的转换没有意义,通常只会有与Unicode等国际编码之间的转换。 2、如果涉及到传输和存储,那么通常会开最前部设置字节序标识,也就是BOM,如果你单问连续两个字节59 4E表示Unicode什么字符,那无法回答你这个问题。 3、传输文件的话你按照文件原封不动传过去不就好了,关BOM什么事?就算是文本文件,你也可以直接读入字节,然后以字节形式传输,如果你执意要读文本,那你讲文本转换成字节,或者直接用Writer,Printer等工具类传输的时候,这些工具类会帮你解决好BOM的问题,这个不用你操心。

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧