2010-10-20 110 views
1

我想知道爲什麼我們沒有一些字符串類來代表Unicode字符串的字符串而不是代碼點或字符。在我看來,在大多數應用程序中,程序員在必要時訪問字形組件時比從代碼點組織它們更容易,即使只是爲了避免隨意打斷「中間字形」中的字符串, (至少在理論上)。在內部,一個字符串類可能使用可變長度編碼,如UTF-8,UTF-16,或者在這種情況下,即使UTF-32是可變長度的;或者爲它們實現子類(並且可選地在運行時配置選項,以便不同的語言可以使用它們的最佳編碼)。但是,如果程序員在檢查字符串時能夠「看見」字形單元,那麼字符串處理代碼通常不會更接近實現正確性,並且沒有太多額外的複雜性?基於字形的字符串類?

參考文獻:
Characters and Combining Marks
Unicode implementer's guide part 4: grapheme breaking
UnicodeString Class Reference
Enumerating a string by grapheme instead of character
Strings and character encoding in C++

+0

因爲你還沒有寫過嗎? – 2010-10-20 06:20:40

+1

我不知道這是否會是更好的問題http://programmers.stackexchange.com/ – 2010-10-20 06:20:48

+1

@John,nassar:我認爲約翰的建議是一個很好的問題 – 2010-10-20 06:23:01

回答

0

我不這麼認爲,因爲石墨烯斷裂不正確的唯一標準。而且,根據所使用的語言/腳本的不同,用戶可以看到不同的字符。如果您擔心標準化模式,您還需要查看Normalizer::concatenate。所以我建議大部分時間只用代碼單元工作,並在需要時計算休息時間。