在文本文件中有一些utf-8字符,我想處理它們並將它們轉換爲十六進制格式,將它們的十六進制值寫入另一個文件,什麼是最好的如何做到這一點? 我知道wstring,wchar,但他們不能存儲utf-8字符,char16_t和char32_t可以存儲,但他們不支持iostream。一些人建議使用ICU Library,但要求是最好不要使用外部庫。將文件中的utf-8字符轉換爲十六進制
0
A
回答
1
如果你不想使用外部庫,那麼你基本上有兩種選擇:
您可以使用MultiByteToWideChar
如果文件足夠小,以適應在內存中。如果BMP之外有任何代碼點,則必須處理代理對。
如果你知道如何測試和移位一個字節的位,解析自己並不困難。維基百科有一個漂亮的good article提供大部分的細節...
0
我希望它能幫助:
int ascii_to_utf8(unsigned char c, char * out) { int len = 0; char x = 0; if(c < 128) { out[0] = c; len = 1; } else { out[0] = (c >> 6) | 0xC0; out[1] = (c & 0x3F) | 0x80; len = 2; } return len; }
int utf8_to_ascii(unsigned char * c, char * out) { int len = 1; if(*c > 0xC0) { * out = ((c[0] << 6) & 0xC0) | (c[1] & 0x3F); len = 2; } else { * out = * c; } return len; }
相關問題
- 1. 將字符串轉換爲十六進制到十六進制
- 2. 將字符轉換爲十六進制
- 3. PHP將字符串轉換爲十六進制和十六進制字符串
- 4. 如何將十六進制字符串轉換爲十進制?
- 5. 將十六進制字符串轉換爲十進制
- 6. 將字符串十進制轉換爲十六進制數
- 7. 將十進制轉換爲十六進制和十六進制
- 8. C++轉換UTF8字符串爲十六進制,反之亦然
- 9. 如何將十六進制字符串轉換爲十六進制字節?
- 10. 字符串爲十六進制和十六進制轉換爲字符串
- 11. 如何將文本從十六進制轉換爲字符串到utf8
- 12. 將十六進制轉換爲二進制到十六進制?
- 13. 將ASCII字符轉換爲十六進制轉義字符串
- 14. NSString和UTF8十六進制轉換
- 15. 將數字轉換爲十六進制
- 16. 在python中將十六進制字符轉換爲Unicode字符
- 17. C++將十六進制字符串轉換爲十六進制char *十六進制數字
- 18. 將十六進制字符串轉換爲十六進制數據
- 19. 如何將十六進制字符串轉換爲十六進制數
- 20. 如何將十六進制字符串轉換爲十六進制?
- 21. 將十六進制字符串數組轉換爲十六進制數組
- 22. 如何將十六進制字符串轉換爲十六進制?
- 23. 從十六進制字符串轉換爲十六進制字符數組
- 24. 將十六進制字符串轉換爲Java中的字節
- 25. 將十六進制字符串轉換爲mySQL中的數字
- 26. 將十六進制字符串轉換爲C++中的字節
- 27. 將字符串轉換爲十六進制的字符集?
- 28. 轉換十六進制字符串十六進制值
- 29. 將十六進制字符串轉換爲無符號字符[]
- 30. 將十六進制字符(連字)轉換爲utf-8字符
你需要去挖掘和理解UTF-8。要回答你的問題,只需按二進制順序讀取文件並將八位字節轉出 –