對於字元編碼,程式設計師的話應該了解它的哪些方面?

時間 2021-05-06 16:47:46

1樓:lonuery

我有個建議就是,不要看這些細碎的答案,會看的你腦子漿糊的,要看就看編碼或者編碼的奧秘那本書,然後嘗試用自己的邏輯再記錄一下看過程中的體會,你看這些細碎的答案你也記不住的,也無助於你更好的理解,只會使得你的理解更加混亂!!!

2樓:

1. Unicode 自己都扯不清 "Character" 到底是什麼。但可以肯定的是:

它不是 Code Point,而且程式以 Code Point 為單位來處理字元多數情況下也是不對的:有些我們看到的字是由兩個 Code Point 組成的(例如 e ,我們看著是乙個「字」,實際上是倆 Code Point)。我們更應該處理的是一種叫做 grapheme cluster 的東西。

2. 連 32bit 的 Code Point 都不能稱作「字」,更不用提 C 與 C++ 8bit 的 char 、16 位的 char16_t 、Windows 下 16 位的 wchar_t 了。也就是說,std::

string::length/std::strlen/std::

wcslen 它們的結果壓根不是什麼字元數量,撐死也就是 Code Unit 的數量。而 Rust 裡的 char 、C++ 的 char32_t 就是乙個 Code Point,Swift 3 的 Character 就是上文提到的 grapheme cluster。

3. 之前與 @孫明琦

4. UTF-8、UTF-16 是變長編碼,也就是說,有可能乙個 UTF-8 Code Unit 就可以翻譯成乙個 Code Point,有可能要倆、仨、四個。UTF-8 的優勢就是相容 ASCII,不用關心大小端的問題,而且對於 ASCII 字元多的情況下佔的地方少。

*nix 欽定 UTF-8,Windows 原來欽定 UCS2,後來欽定 UTF-16。

參考:Let』s Stop Ascribing Meaning to Code Points

3樓:

最近看到的最通俗易懂的介紹: https://www.

4樓:程式獵人

這取決於你是做什麼的程式設計師。

如果是單語言程式設計,又沒有什麼特別的編碼要求,知道有這麼個事兒就差不多了。

如果是做多語言,甚至是字型檔相關程式設計。那就從頭到尾學一遍好了。

厲害的程式設計師相對於普通程式設計師,對於完成乙個需求來說,除了更少的 bug,還有什麼優勢?

烈日烤魚 沒有程式設計師經歷的人想理解這個問題,你就想想你高中的數學大神和普通人同做一張數學卷子的結果吧。這裡程式設計思維模擬數學思維 不離譜 數學大神模擬頂級程式設計師,普通同學模擬一般程式設計師,任務需求就是,把一張卷子上填滿正確的答案。結果就是 數學大神能做出來的難題普通同學做不出來 數學大神...

想了解程式設計師用什麼電腦?

虛篤 高價效比高配十年以上的筆記本,Win Linux單開重啟切換 骨灰級程式設計師。強勁台式電腦靜態IP做伺服器,notebook,MBA本連台式電腦 小資程式設計師。MBP,TPX1 等Ultrabook一機走天下,普通程式設計師。 連電腦配置都能宣傳公司了 現在在某節約型公司,macbook只...

程式設計師該怎樣提高自己的編碼能力和產品能力 怎樣才能快速的成長為架構師?

羅傑 這個問題幾乎直接等於,我怎麼樣能夠賺到更多的錢。首先不管你讀了多少成功學的書,也不可能包裝讓你成為富豪。一樣的道理,構架書籍各種知識,在網上一搜一大片,但是這些東西都不是能讓你優秀的核心。真正優秀和牛B的人,都有一顆心,想要有所成就的心,一種強烈的搞一些大事情的心態和追求。正式這種追求,讓他們...