2010-11-05 35 views
1

我在我的Ubuntu 10.10 linux下有unicode函數的問題。許多unicode功能無法正常工作。當我嘗試以下簡單的代碼:linux g ++的Unicode問題

#include <wchar.h> 

int main(int argc, char *argv[]) 
{ 
    wprintf(L"test %s %s %s\n",L"one",L"two",L"three"); 
    return 0; 
} 

和使用G ++(gcc版本4.4.5的Ubuntu/Linaro的4.4.4.-14ubuntu5)一個具有下面的結果編譯:

test o t t 

代替預期:

test one two three 

其他用於處理unicode字符串的函數不能正常工作。很多我在MS Windows下開發的代碼,這是我的第一個Linux編程嘗試。

(相同錯誤出現在哪裏我測試了這個片段兩臺Linux機器)

謝謝你的任何建議。

回答

6

您想要%ls,而不是wprintf(3)手冊頁中給出的。

+0

謝謝,它有幫助。我花了樹小時搜索我的應用程序中出了什麼問題;-(在MS Visual studio下%s適用於ansi和unicode – 2010-11-05 16:01:00

+0

'man'是你的朋友,但你可能必須安裝一個manpages-dev軟件包或一些。 – 2010-11-05 16:02:13

+0

謝謝。我已經安裝了man頁面,因爲這不是將我的應用程序移植到linux的第一個問題;-)。 – 2010-11-05 16:15:34