post by tommy @ 05 五月, 2013 10:27
原本有些小程式是使用 php 寫的 script 來跑, 不過... 由於 php 一直沒有支援 unicode (Windows wide string, 官方是說要等 PHP 6, 不過看起來不知道還要多久), 在處理 unicode 的檔案名稱時就會有問題, 所以... 還是需要自己寫些小程式來處理.
不過, 剛用 Visual C++ 寫的時候, 發現處理 unicode 時沒有什麼問題, 不過... 用 _tprintf (實際上應該就是 wprintf) 印出資料的時候, 都無法顯示出 unicode 的字.
找了相關的資料, 發現只要先去設定 stdout 的輸出模式, 就可以正常顯示 unicode 了.
_setmode(_fileno(stdout), _O_U16TEXT);
只要程式先執行過上述的指令, 就可以正常的顯示 wide string (UTF16-LE) 的字串了.