make loop

This commit is contained in:
chai2010
2015-12-28 15:57:07 +08:00
parent 77148f84d4
commit ba7261d140
25 changed files with 44 additions and 44 deletions

View File

@@ -9,7 +9,7 @@ UTF8是一個將Unicode碼點編碼爲字節序列的變長編碼。UTF8編碼
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 65536-0x10ffff (other values unused)
```
變長的編碼無法直接通過索引來訪問第n個字符但是UTF8編碼得了很多額外的優點。首先UTF8編碼比較緊湊完全兼容ASCII碼併且可以自動同步它可以通過向前迴朔最多2個字節就能確定當前字符編碼的開始字節的位置。它也是一個前綴編碼所以當從左向右解碼時不會有任何歧義也併不需要向前査看譯註像GBK之類的編碼如果不知道起點位置則可能會出現歧義。沒有任何字符的編碼是其它字符編碼的子串或是其它編碼序列的字串因此蒐索一個字符時隻要蒐索它的字節編碼序列卽可不用擔心前後的上下文會對蒐索結果産生榦擾。同時UTF8編碼的順序和Unicode碼點的順序一致因此可以直接排序UTF8編碼序列。同時因爲沒有嵌入的NUL(0)字節可以很好地兼容那些使用NUL作爲字符串結尾的編程語言。
變長的編碼無法直接通過索引來訪問第n個字符但是UTF8編碼得了很多額外的優點。首先UTF8編碼比較緊湊完全兼容ASCII碼併且可以自動同步它可以通過向前迴朔最多2個字節就能確定當前字符編碼的開始字節的位置。它也是一個前綴編碼所以當從左向右解碼時不會有任何歧義也併不需要向前査看譯註像GBK之類的編碼如果不知道起點位置則可能會出現歧義。沒有任何字符的編碼是其它字符編碼的子串或是其它編碼序列的字串因此蒐索一個字符時隻要蒐索它的字節編碼序列卽可不用擔心前後的上下文會對蒐索結果産生榦擾。同時UTF8編碼的順序和Unicode碼點的順序一致因此可以直接排序UTF8編碼序列。同時因爲沒有嵌入的NUL(0)字節可以很好地兼容那些使用NUL作爲字符串結尾的編程語言。
Go語言的源文件采用UTF8編碼併且Go語言處理UTF8編碼的文本也很出色。unicode包提供了諸多處理rune字符相關功能的函數比如區分字母和數組或者是字母的大寫和小寫轉換等unicode/utf8包則提供了用於rune字符序列的UTF8編碼和解碼的功能。