<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    沉睡森林@漂在北京

    本處文章除注明“轉(zhuǎn)載”外均為原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處。

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      152 隨筆 :: 4 文章 :: 114 評(píng)論 :: 0 Trackbacks

    2008-05-26 17:27
    UltraEdit是一個(gè)非常強(qiáng)大的工具,但是,工具太強(qiáng)大了就會(huì)變成一個(gè)雙刃劍,用好了是好工具,用不好可能會(huì)存在很多的疑惑,在編碼方面UltraEdit存在一寫(xiě)令人費(fèi)解的問(wèn)題,本人做了一點(diǎn)點(diǎn)研究,與大家分享。

    主要的問(wèn)題來(lái)源于UTF
    -8的處理。

    Unicode規(guī)范中推薦的標(biāo)記字節(jié)順序的方法是BOM(Byte Order Mark)

    UTF
    -8不需要BOM來(lái)表明字節(jié)順序,但可以用BOM來(lái)表明編碼方式。如果接收者收到以EF BB BF開(kāi)頭的字節(jié)流,就知道這是UTF-8編碼了。
    由于UTF
    -8 BOM并沒(méi)有得到廣泛的支持,所以造成了一定范圍內(nèi)的不兼容。下面列出幾個(gè)主要工具對(duì)于BOM的處理。

    1.   notepad

    notepad 在保存時(shí),選擇UTF
    -8 格式,會(huì)在文件頭寫(xiě)上BOM header.讀取文件時(shí),會(huì)分析BOM和文件中是否有中文字符,進(jìn)而做出正確的選擇。

    2.   notepad++

    可以設(shè)置各種格式,有無(wú)BOM都支持。

    3.   editplus

    文件保存時(shí),選擇UTF
    -8 格式,不會(huì)在文件頭寫(xiě)上 BOM header.讀取可以識(shí)別UTF-8

    4.   ultraedit

    ultraedit在advanced
    -&gt;configuration中可以選擇文件保存時(shí)是否寫(xiě)上BOM header.或者另存為中選擇。讀取是,如果沒(méi)有設(shè)置自動(dòng)檢測(cè)UTF-8或者部分無(wú)BOM文件會(huì)無(wú)法正常顯示。

    5.   Eclipse

    如果設(shè)置了文件的編碼問(wèn)UTF
    -8,那么文件保存為無(wú)BOM格式。讀取正常。

    6.   vi

    指的是Linux 下的vim, 如果UTF
    -8 文件開(kāi)頭有BOM header, 其能夠正常顯示UTF-8 編碼,否則,顯示為亂碼。

    UltraEdit的主要問(wèn)題

    1. 如果新建一個(gè)文件,選擇保存為UTF-8 無(wú) BOM格式,如果數(shù)據(jù)中沒(méi)有中文字符,或者h(yuǎn)arset=UTF-8,那么無(wú)論怎么保存,UE仍然會(huì)把文件保存為ANSI格式,這樣,以后再加入中文的時(shí) 候編碼方式也不會(huì)改變,這就會(huì)造成Java Build程序生成的腳本含有亂碼。

    2. 如果是正確的UTF-8無(wú)BOM格式,在前9205個(gè)字符中如果沒(méi)有中文,那么UE會(huì)頑固的認(rèn)為此文件是ANSI格式,所以導(dǎo)致文件中文亂碼(測(cè)試版本UE 13.10a)。解決辦法就是主動(dòng)的在前9205個(gè)字符前加入一個(gè)中文字符。

    3. 哭笑不得的UTF-8自動(dòng)檢測(cè)。在advanced-&gt;configuration-&gt;Unicode/UTF-8 Auto Check中有自動(dòng)檢測(cè)UTF-8的選項(xiàng),如果選擇,經(jīng)分析UE將采用三種檢測(cè)方式:

    a)   文件編碼的開(kāi)頭是否有【EF BB BF】字符(即BOM),如果有則認(rèn)為是UTF
    -8

    b)   檢查是否含有charset
    =UTF-8類似的文字,如果有,那么認(rèn)為是UTF-8格式,這將導(dǎo)致以ANSI存儲(chǔ)的文件亂碼。

    c)   如果是UTF
    -8無(wú)BOM格式的文檔,UE會(huì)檢查前9205個(gè)字符是否含有中文字符,如果有,如果沒(méi)有則使用ANSI編碼進(jìn)行解析,造成后面的中文字符亂 碼。如果這個(gè)時(shí)候強(qiáng)制的用UE轉(zhuǎn)換為UTF-8,則亂上加亂,文件作廢。對(duì)于本身是ANSI格式存儲(chǔ)的文件,沒(méi)有此檢測(cè),中文正常。

    4. UE打開(kāi)UTF-8的文件默認(rèn)會(huì)轉(zhuǎn)換為UTF-16,影響不大。

    對(duì)于用戶

    1. UE打開(kāi)亂碼的問(wèn)題,在前9205字符中加入中文注釋可以解決此問(wèn)題,或者使用在UE的【文件】菜單中的【轉(zhuǎn)換】-&gt;【UNICODE/UTF-8 到 UTF-8(Unicode編輯)】進(jìn)行轉(zhuǎn)換。

    2. 不要使用UE來(lái)新建無(wú)中文的UTF-8無(wú)BOM文件。

    3. 不要在已經(jīng)亂碼的文件中,刪除亂碼然后添加中文再保存。

    4. 新建UTF-8無(wú)BOM文件可以使用Eclipse、Notepad++、EditPlus進(jìn)行

    5. 對(duì)于記事本保存的UTF-8腳本文件,Java Build程序也是可以識(shí)別的,但是Java文件不能使用記事本編輯編輯器無(wú)法識(shí)別文件頭的EF BB BF標(biāo)記。
    posted on 2010-06-11 16:59 王總兵 閱讀(1135) 評(píng)論(1)  編輯  收藏

    評(píng)論

    # re: UltraEdit編碼問(wèn)題 2012-09-18 19:30 lostgdi
    useful for me , thank  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产无遮挡无码视频免费软件| 久久精品网站免费观看| 亚洲精品在线观看视频| 99久久综合国产精品免费| 高潮毛片无遮挡高清免费视频| 亚洲成在人线av| 免费看大美女大黄大色| 在线免费播放一级毛片| 亚洲一级毛片免观看| 国产亚洲精品无码专区| 日本h在线精品免费观看| 免费人成又黄又爽的视频在线电影| 亚洲av中文无码乱人伦在线播放 | 久久久久se色偷偷亚洲精品av| 日韩精品电影一区亚洲| 99爱视频99爱在线观看免费| 处破女第一次亚洲18分钟| 99久久精品国产亚洲| 美腿丝袜亚洲综合| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲免费在线视频| 国产公开免费人成视频| 777成影片免费观看| 成年大片免费视频播放一级| 久久精品国产亚洲av麻豆蜜芽 | 亚洲av中文无码乱人伦在线r▽| 好吊妞788免费视频播放| 青青操在线免费观看| 黄色a级片免费看| 亚洲av乱码一区二区三区| 亚洲日韩精品一区二区三区 | 1000部羞羞禁止免费观看视频| 日韩精品无码永久免费网站| 亚洲免费福利在线视频| 亚洲日本中文字幕| 亚洲永久无码3D动漫一区| 国产乱子伦片免费观看中字| 中文字幕无码不卡免费视频| 一区二区免费视频| 三级网站免费观看| 中国好声音第二季免费播放|