前端小誌(轉型中)

一個用來記錄人老會忘記的地方

Ansi unicode 簡略記

2019年03月10日
網路上這個議題寫到爛掉了,我寫這個只是因為一直遇到問題。 反正都會說utf-8就對了,真正遇到問題也不知道解就對了。

所以我寫一篇給我自己有點印象。

ansi

早期的電腦只能表示256種符號,但是每個國家字都這麼多,所以有些國家將兩個字母合併來代表一個字母,big5, gbk, jis,皆是這樣。

但是每個國家都搞一套,第一有可能會有重覆的字,第二,在看文章的時候需要知道編碼,而且電腦裡面要裝編碼。

這實在是太蠢了,所以之後就發明了unicode。

unicode

常聽到的是萬國碼,但其實叫統一碼比較精確。為了防止上面的事情不斷發生,所以統一大家的文字,通通記成一套。

utf16 windows常用的編碼方式,所有的文字都是兩個bytes,像是從powershell跑出來的檔案,預設都是utf16。

utf8 變動字元,英文為一個bytes,中文通常為三個bytes,最多可以用四個bytes去記錄字元。

以速度來說,utf16 > utf8 (固定字元解析比較快),以儲存來說,英文夠多 utf8 > utf 16,網路世界重傳輸速度,所以utf8較為受歡迎。

所以寫網頁用utf8,寫應用程式用utf16。

至於有時候,windows檔案會出現的bom就是在記錄這個檔案是哪個編碼,但for more general use,還是使用不帶bom的編輯器吧。

另外有時候,linux的cli或是vim會出現亂碼,如果在某些情況能看到正常的檔案(例如cat file),這就看情況自己解吧(std out格式問題)。

通常是啟aws的機器沒特別設定,就降。


展開Disqus
分類
最近文章
友站連結
© 2019 Ernie Yang