0
在我的一個項目中,我需要在Windows C++中支持UTF-8。寬字符到多字節問題
當前代碼使用的是wcstombs
,其中中文語言沒有正確轉換。我用WideCharToMultiByte
替換wcstombs
。經過測試,在Windows 7和Windows XP SP3中,我可以正常工作。
但是在舊機器之一中安裝了Windows XP SP3中的中文或CZech語言包。我瞭解這也會影響註冊表。那裏的應用程序行爲有所不同。
當我用wcstombs
做opertator重載的時候<<
它的工作正常。當我使用WideCharToMultiByte
時,它的效果與預期不符。
沒有更改註冊表設置(安裝語言包),WideCharToMultiByte
工作正常。
我正確地認爲語言包安裝會影響註冊表更改,從而影響此行爲嗎?請幫助我瞭解是否還有其他可能會影響行爲的事情。
你確定WideCharToMultiByte沒有返回一個字節數組嗎?如果是這種情況,那麼它可能以某種方式與二進制移位運算符混淆(也是'<<') – MiltoxBeyond 2014-10-31 07:08:35