首页&版块精彩图片推荐在线编码转换Discuz!商业插件广告奖励 FOR Discuz 6.0
感谢作者 FOR discuz 6.0 PHP HTML/XHTML处理程序MineFilter编码中国 UTF-8 QQ IP数据库Discuz插件转换系统
发新话题
打印

unicode中不明白的问题

unicode中不明白的问题

最近在设计一个软件(用java语言做):要区分出文件是哪种unicode的实现方式
现在知道unicode分为六种实现方式:
1.UTF-8
2.UTF-8不带BOM的
3.UTF-16LE
4.UTF-16BE
5.UTF-16LE不带BOM
6.UTF-16BE不带BOM
现在如果要区分的话1.3.4这三种都能实现了,因为它们都带BOM,有这个标志,就很好区分了!但剩下的三种就不好区分了
“UTF-16LE”和“UTF-16LE不带BOM”的区别仅仅是文件的开头没有FF FE?
还有“UTF-16BE”和“UTF-16BE不带BOM”的区别仅仅是文件的开头没有FE FF?
但如果真是这样的话,为何要有这样的差别呢?只存在带BOM的UTF-16不就很好用吗,只看前面的BOM就能区别出此文件是哪种实现方式!
我的软件的设计思路是检查前面的BOM情况就能判断出1.3.4这三种情况,但是不带BOM的实在是不知道怎么实现了!请高手不吝指教啊!指明实现的思路或者是提供一个实现的类的方法!谢谢啊!
还有一个问题:现在知道unicode和ANSI是两种不同的编码集!但是不知道ISO和它们的关系是什么,ANSI和ISO的关系,有时候想看一个文件的encoding,出现UTF-16BE,UTF-16LE,UTF-8这三种格式完全可以接受(可能对unicode比较容易接受吧,标准太多太杂了,就喜欢unicode),但是有些结果却是ISO-8859-1,ISO-8859-9,Big5,windows-1250,windows-1253,并且不知道UTF-16不带BOM是以什么格式出现,总不能碰到个UTF-16不带BOM的文件显示它的encoding的时候还是UTF-16吧?完全晕了,现在感觉它们之间的关系真是错综复杂,希望高手能够明示!!!

今日热门主题

发新话题
最近访问的版块