2016-07-14 70 views
0

我想在visual C++ 2015中使用UNICODE,但它不起作用,所以我嘗試了simple tutorial。這裏是代碼:UNICODE不起作用 - >「????」 (visual C++ 2015)

#undef UNICODE 
#define UNICODE 
#undef STRICT 
#define STRICT 
#include <windows.h> 

int main() 
{ 
    DWORD const infoboxOptions = MB_OK | MB_ICONINFORMATION | MB_SETFOREGROUND; 

    char const* const  narrowText = "It's a 日本國 кошка, LOL!"; 
    wchar_t const* const wideText = L"It's a 日本國 кошка, LOL!"; 

    MessageBox(0, wideText, L"Unicode (wide) text:", infoboxOptions); 
    MessageBoxA(0, narrowText, "ANSI (narrow) text:", infoboxOptions); 
} 

它也不起作用。兩個消息框都顯示「????」而不是特殊字符。

我甚至嘗試把wWinMainCRTStartup作爲入口點,定義_UNICODE和UNICODE,但沒有任何效果。

也許是因爲該示例不適用於visual C++ 2015?

+0

無法重現。 – user4581301

+1

源文件編碼怎麼樣?試試'UTF-8' – PcAF

+3

當我嘗試在Visual Studio 2013中重現這一點時,它會警告我它不能保存文件並提供將其另存爲Unicode;我選擇帶簽名的UTF-8。然後它會在創建'char'常量的行上給出警告,而不是'wchar_t'常量。 'MessageBox'適用於我,但MessageBoxA並不完全如我所料。 –

回答

0

的解決方案是在這另一post:在cpp文件,另存爲...,然後選擇「帶編碼保存...」,然後選擇「UTF-8無簽名」

+2

在Windows上,您可能會發現使用*簽名保存UTF-8 *會更好。您更可能在Visual Studio和其他Windows實用程序中獲得一致的操作。將文件傳遞到非Windows系統時,沒有簽名會更好。 –

相關問題