簡體   English   中英

在字節數組中解析Unicode

[英]Parsing Unicode in a byte array

我有一個帶有一系列字符的字節數組。 在一種情況下,我有

[28] = 0x6e
[29] = 0x61
[30] = 0x6d
[31] = 0x65
[32] = 0x00
[33] = 0x00
[34] = 0x00
[35] = 0x4f
[36] = 0x08
[37] = 0x00
[38] = 0x07
[39] = 0x00
[40] = 0x00
[41] = 0x04
[42] = 0x13
[43] = 0xff
[44] = 0xff
[45] = 0x00
[46] = 0x00

28到31具有字符“ name”,該部分以元素32結尾。然后我有另一個字節數組:

[47] = 0x01
[48] = 0x03
[49] = 0x00
[50] = 0x00
[51] = 0x73
[52] = 0x65
[53] = 0xc3
[54] = 0xb1
[55] = 0x6f
[56] = 0x72
[57] = 0x00
[58] = 0x00
[59] = 0x00
[60] = 0x4f
[61] = 0x08
[62] = 0x00
[63] = 0x08
[64] = 0x00
[65] = 0x00
[66] = 0x04
[67] = 0x13
[68] = 0xff
[69] = 0xff
[70] = 0x00
[71] = 0x00

我相信我那里有琴弦señor

使用第一個數組可以很容易地找到名稱,其中前4個字節以00作為終止符,但是如何解密第二個字節數組上的內容呢?

這兩個數組都是vector<char>

該文本顯然使用UTF-8編碼:

[53] = 0xc3
[54] = 0xb1

這是UTF-8編碼的 ñ字符。 周圍的字符是señor其余的四個字符。

C ++庫確實具有一些用於UTF-8的工具 但是我總是發現那些庫類有些笨拙和僵化。 在大多數平台上,您都有一個出色的,靈活的iconv庫,它帶有一個簡單的API,可以在UTF-8和其他編碼之間進行轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM