[英]What unicode encoding (UTF-8, UTF-16, other) does Windows use for its Unicode data types?
存儲在Windows內存中的值始終為UTF-16 little-endian。 但那不是你所說的 - 你在看文件內容。 Windows本身不指定文件的編碼,而是將其留給單個應用程序。
您在文件開頭看到的0xfe 0xff是字節順序標記或BOM 。 它不僅表明該文件很可能是Unicode,而且它告訴您Unicode編碼的哪種變體。
0xfe 0xff UTF-16 big-endian
0xff 0xfe UTF-16 little-endian
0xef 0xbb 0xbf UTF-8
除非您知道如何編寫,否則應將具有BOM的文件假定為8位字符。 這仍然沒有告訴你,如果它是UTF-8或其他一些Windows字符編碼,你只需要猜測。
您可以使用記事本作為如何完成此操作的示例。 如果文件有BOM,那么記事本將讀取它並適當地處理內容。 否則,您必須使用“編碼”下拉列表自行指定編碼。
編輯:Windows文檔沒有更具體的編碼原因是Windows是Unicode的早期采用者,當時每個代碼點只有一個 16位編碼 。 當確定65536個代碼點不合適時,代理對被發明為擴展范圍的方式,並且UTF-16誕生了。 微軟已經使用Unicode來引用他們的編碼而且從未改變過。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.