簡體   English   中英

如果我注入basic_stream會發生什么 <char> 帶有codecvt_utf16的語言環境 <char> 小?

[英]What happens if I imbue basic_stream<char> with locale with codecvt_utf16<char> facet?

是否指定了如果我將basic_stream<char> codecvt_utf16<char>具有codecvt_utf16<char>方面的語言環境,將會發生什么情況?

基本上,我使用typedef wchar_t tchar; typedef char tchar; 更改(稱為我的)庫的Unicode和非Unicode構建的接口。 我想通過始終使用codecvt_utf16<tchar>構面在區域設置中codecvt_utf16<tchar>文件流來簡化源代碼。 無論如何,這會工作嗎?

(我不介意這樣注入的fstream讀取的文件是否必須僅包含ASCII或僅包含在當前全局語言環境中可表示的代碼點。)

編輯:

鑒於codecvt_utf16<char>行為似乎未指定,那么將basic_stream codecvt_utf16<wchar_t>怎么辦? 是否指定了此行為?

對於C ++ 0x, codecvt_utf*<>使用寬字符實例化codecvt_utf*<> 如果未指定使用char會發生什么,唯一知道的方法就是嘗試。

請記住,codecvt_utf16會與外部UTF-16表示形式進行轉換。 也就是說,您的文件應該以UTF-16編碼。 您可能要考慮改用UTF-8。

附帶說明一下,為什么今天有人會想要任何非Unicode的東西,這對我來說還是個謎。 人們喜歡使用受限字符集還是什么?

暫無
暫無

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

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