簡體   English   中英

C ++如何使用utf8十六進制代碼打印utf8符號?

[英]c++ how to print utf8 symbol using utf8 hex code?

例如,我有一個符號的utf8十六進制代碼,它是:

e0a4a0

我該如何使用這個十六進制代碼打印這個人物在C ++文件?

我看到您可以采取兩種方法:第一種是將其字面使用為"ठ"第二種是以轉義序列\\u\u003c/code>或\\x對其進行編碼(兩者均無效,因此我沒有示例)

std::cout<<"ठ\xe0\xa4\xa0"<<std::endl;

但是我認為對您來說最好的選擇是在二進制模式下打開文件,然后將那些字節放在那里。

您需要分別輸出每個字節。

例如,如果您有:

c386

您需要將第一個字節(前兩個字符“ c3”)轉換為int,轉換為char並輸出,然后將第二個字節(“ 86”)轉換為輸出。

針對這種情況的轉換(“ c386”):

string a="c386";
char b = (a[0] - 'A' + 10) * 16 + a[1] - '0';
char c = (a[2] - '0') * 16 + a[3] - '0';
cout << b << c << endl;

“ c3” = 44 * 16 + 3 = 707,“ 86” = 8 * 16 + 6 =134。將這些int值轉換為char並輸出它們,您便擁有了自己的角色。

暫無
暫無

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

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