星期六, 12月 15, 2007

中文(UTF8) cout setw 寬度問題

最近寫的一些程式都要求要 格式化的輸出(setw)
問題來了.. 同學用 VC 寫的編碼是用 Big5 , 所以跑起來沒什麼問題
可是我的environment 是 utf8, 程式跑起來有中文的地方寬度都會算錯

google 了一番還是找不到解答
最後只好用
g++ -fexec-charset=big5 xxx.cpp xxx
來compile, 如此一來程式內容會自動轉為 big5 (應該是透過iconv)
anyway, 跑程式的時候用 ./xxx | iconv -f big5 再把 output 轉回utf8
就可以看到正常的字串寬度. 這樣似乎是有點累贅, 不知道還有沒有更好的方法?