我已經花了很多時間閱讀有關Unicode,編碼和許多相關主題。
我研究背後的原因是因爲我試圖讀取文件的內容並逐個字符地解析它們。C++正確讀取unicode字符可能大於一個字節的文件
糾正我,如果我錯了,請:
C++的getc()
返回int
可能等於EOF
。
如果返回值不等於EOF
它可以是
解釋爲
安全地分配給char
。
由於std::string
基於char
我們可以使用這些字符構建std::string
s並使用這些字符。
我有一個C#的背景,我們使用C#的char
(16bit)爲string
s。
這些char
的值直接映射到unicode值。
A char
其值爲5
等於位於U+0005
的unicode字符。
我不明白的是如何讀取C++中包含字符的值可能大於一個字節的文件。當我只能讀取其值被限制爲一個字節的字符時,我覺得使用getc()
並不舒服。
我可能會錯過如何正確讀取C++文件的重要一點。
任何見解都非常感謝。
我使用vC++運行Windows 10 x64。
但我寧願保持這個問題平臺independend如果可能的話。
編輯
我想強調的Klitos Kyriacou的評論鏈接堆棧溢出後(?):
How well is Unicode supported in C++11?
這是一個快速下潛到如何壞的Unicode支持在C++中。
有關更多詳細信息,請閱讀/查看接受答案中提供的資源。
你有機會看看'std :: wstring'和/或'wchar_t'嗎? –
你想使用什麼編碼? –
@VadaPoché讓我讀這些東西了... –