我需要確定以字節爲單位的UTF-8字符串的長度。如何正確執行?據我所知,在UTF-8終端符號中有1個字節的大小。我可以使用strlen這個功能嗎?以字節爲單位的UTF-8字符串大小
3
A
回答
11
我可以使用strlen函數嗎?
是,strlen
給你一個字節數第一'\0'
字符之前,所以
strlen(utf8) + 1
是字節的utf8
包括0終止的數量,因爲沒有比'\0'
包含其它字符UTF-8中的0字節。
當然,只有在utf8
實際上是UTF-8編碼的情況下才有效,否則您需要先將其轉換爲UTF-8。
+0
@JoopEggen:不,Latin-1和高級控制字符在UTF-8中不是單字節。 UTF-8中只有**的單字節字符是ASCII。無論如何,編碼與以字節爲單位測量字符串的大小無關。 – 2013-05-02 16:05:08
+0
@R .. right;實際上我只想提到UTF-8的優點,即整個7位ASCII範圍不會由於高位而在UTF-8多字節序列中錯誤地發現。 – 2013-05-02 20:46:42
2
是的,strlen()將簡單地計數字節,直到它遇到NUL,這是0終止的UTF-8編碼C字符串的正確終結符。
相關問題
- 1. 以字節爲單位測量字符串的大小php
- 2. 以字節爲單位獲取std :: string的字符串的大小
- 3. 將字節[]轉換爲UTF8字符串
- 4. 獲取HTTPRequest/HTTPResponse頭字節大小(以字節爲單位)
- 5. 以字節爲單位的字典大小
- 6. 如何計算以字節爲單位的節點大小
- 7. 如何計算base64image字符串大小以MB爲單位?
- 8. 以字節爲單位的大小(以KB爲單位)對於sql字段中的字段
- 9. UTF8字節到字符串和Winsock GetStream
- 10. 以字節爲單位給出的不準確的NSData大小
- 11. 以字節爲單位的RSA簽名的大小是多少?
- 12. 得到的NodeJS變量的大小以字節爲單位
- 13. 以字節爲單位的類的大小
- 14. 多字節的UTF8字符
- 15. svn修訂版的大小(以字節爲單位)
- 16. 以字節爲單位的已用內存。 Linux堆塊大小
- 17. 以字節爲單位確定緩衝區的總大小
- 18. 如何確定PyTables數組的大小(以字節爲單位)?
- 19. 不同編譯器的枚舉大小(以字節爲單位)
- 20. 以字節爲單位的分組大小
- 21. Http以字節爲單位獲取請求包大小
- 22. 如何將32個字符大小的字符大小的doRegister轉換爲32位字符的字符串?
- 23. 大小以字節
- 24. 截斷字符串(爲特定字節大小)
- 25. iphone使用exif數據縮小圖像的大小(以字節爲單位)
- 26. 字符串限制字 - UTF8
- 27. 固定大小像素字體的Emacs字體大小(以像素爲單位)?
- 28. 表單大小以字節使用JavaScript?
- 29. 以字節爲單位獲取UTF-8字符串長度的最佳方法?
- 30. 刪除4個字節的UTF8字符
UTF-8沒有定義字符串如何終止。使用空字符「'\ 0」來終止一個字符串是一個C約定。 – 2013-05-02 15:18:06
UTF-8的重點在於,您不必更改任何**字符串處理實踐。只有解釋字符串字符的代碼纔有可能需要改變,即使這樣,通常只有當它對ASCII範圍以外的字符應用特殊解釋時才需要改變。諸如'strlen','strstr','strchr'(用於搜索單字節字符),'snprintf'等等都可以工作。 – 2013-05-02 16:07:13
感謝您的解釋! – 2013-05-02 17:05:34