phphot

php,linux,mysql,apache

小秘密ID:phphot
811656次访问,排名40好友60人,关注者162
php,apache,mysql,linux,html,css,javascript
phphot的文章
原创 3195 篇
翻译 0 篇
转载 11 篇
评论 564 篇
phphot的公告


经典推荐!!!
从一则笑话分析需求的陷阱

本科差点没能毕业,工作五年后年收入过百万

从小公司到500强 80年代人的面试宝典

那些雷得我们如此销魂的台词

老IT人追忆十五年IT从业经历

汶川大地震牛B语录集锦

千百万学子未来几年的出路

大学时代影响我的人生的10件大事-前辈的经验

噩梦的那一年-程序员之路

成功的背后!(给所有IT人)

一部让大学生少奋斗10年的成功宝典

职业生涯中12个最致命的想法

华为面试,第三轮被拒,想哭

一个牛人给java初学者的建议

黑客帝国之PHP与ASP.net不得不说的故事

一个应界毕业生的深圳求职经历。

程序人生:女程序员的求职奋斗史

2008春晚诗朗诵《心里话》之程序员版

最高境界---笑到肚子疼!!!!

是非人生——一个菜鸟程序员的5年人生路

网友10年跳槽经验总结

2008年IT行业10大热门职业调查结果出炉

百度实习经验总结

一点感慨,与诸君共勉,正式告别程序员生涯

程序员V.S.编程语言你上“贼船”了吗

上海IT精英群体某些行为特征被妖魔化

五百强各大行业简介+面试流程及技巧

08年各大公司薪水最新行情全面曝光


XML聚合
feedsky
最近评论
strongwillow:要上大学了,不错的文章,收藏了
strongwillow:不错,学习
yythyb:哎,现在IT业真的很难混啊,看见很多人赚了钱,自已没赚钱,我以为别人都混的比较好,哎,看来还真是难啊
李小:写得真好!!真好!!
yythyb:我无言
文章分类
收藏
    相册
    YY的图(禁)
    绝对精彩
    网上好图(禁)
    我的工作(禁)
    我的作品(禁)
    热门站
    baidu
    google
    yahoo
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 UltraEdit编码问题研究收藏

    新一篇: 挑水别忘了挖井,上班也可以创业 | 旧一篇: 宁波用户玩iPhone十天损失7000元上网费

    UltraEdit是一个非常强大的工具,但是,工具太强大了就会变成一个双刃剑,用好了是好工具,用不好可能会存在很多的疑惑,在编码方面UltraEdit存在一写令人费解的问题,本人做了一点点研究,与大家分享。

    主要的问题来源于UTF-8的处理。

    Unicode规范中推荐的标记字节顺序的方法是BOM(Byte Order Mark)

    UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。
    由于UTF-8 BOM并没有得到广泛的支持,所以造成了一定范围内的不兼容。下面列出几个主要工具对于BOM的处理。

    1.   notepad

     notepad 在保存时,选择UTF-8 格式,会在文件头写上BOM header.读取文件时,会分析BOM和文件中是否有中文字符,进而做出正确的选择。

    2.   notepad++

    可以设置各种格式,有无BOM都支持。

    3.   editplus

     文件保存时,选择UTF-8 格式,不会在文件头写上 BOM header.读取可以识别UTF-8

    4.   ultraedit

     ultraedit在advanced->configuration中可以选择文件保存时是否写上BOM header.或者另存为中选择。读取是,如果没有设置自动检测UTF-8或者部分无BOM文件会无法正常显示。

    5.   Eclipse

    如果设置了文件的编码问UTF-8,那么文件保存为无BOM格式。读取正常。

    6.   vi

     指的是Linux 下的vim, 如果UTF-8 文件开头有BOM header, 其能够正常显示UTF-8 编码,否则,显示为乱码。

     

    UltraEdit的主要问题

    1.  如果新建一个文件,选择保存为UTF-8 无 BOM格式,如果数据中没有中文字符,或者harset=UTF-8,那么无论怎么保存,UE仍然会把文件保存为ANSI格式,这样,以后再加入中文的时 候编码方式也不会改变,这就会造成Java Build程序生成的脚本含有乱码。

    2.  如果是正确的UTF-8无BOM格式,在前9205个字符中如果没有中文,那么UE会顽固的认为此文件是ANSI格式,所以导致文件中文乱码(测试版本UE 13.10a)。解决办法就是主动的在前9205个字符前加入一个中文字符。

    3.  哭笑不得的UTF-8自动检测。在advanced->configuration->Unicode/UTF-8 Auto Check中有自动检测UTF-8的选项,如果选择,经分析UE将采用三种检测方式:

    a)   文件编码的开头是否有【EF BB BF】字符(即BOM),如果有则认为是UTF-8

    b)   检查是否含有charset=UTF-8类似的文字,如果有,那么认为是UTF-8格式,这将导致以ANSI存储的文件乱码。

    c)   如果是UTF-8无BOM格式的文档,UE会检查前9205个字符是否含有中文字符,如果有,如果没有则使用ANSI编码进行解析,造成后面的中文字符乱 码。如果这个时候强制的用UE转换为UTF-8,则乱上加乱,文件作废。对于本身是ANSI格式存储的文件,没有此检测,中文正常。

    4.  UE打开UTF-8的文件默认会转换为UTF-16,影响不大。

     

    对于用户

    1.  UE打开乱码的问题,在前9205字符中加入中文注释可以解决此问题,或者使用在UE的【文件】菜单中的【转换】->【UNICODE/UTF-8 到 UTF-8(Unicode编辑)】进行转换。

    2.  不要使用UE来新建无中文的UTF-8无BOM文件。

    3.  不要在已经乱码的文件中,删除乱码然后添加中文再保存。

    4.  新建UTF-8无BOM文件可以使用Eclipse、Notepad++、EditPlus进行

    5.  对于记事本保存的UTF-8脚本文件,Java Build程序也是可以识别的,但是Java文件不能使用记事本编辑编辑器无法识别文件头的EF BB BF标记。

    发表于 @ 2008年05月11日 14:48:03|评论(loading...)|编辑

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © phphot