青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

小明思考

高性能服務器端計算
posts - 70, comments - 428, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

深入 printf / wprintf / console下的unicode output

Posted on 2006-06-21 11:53 小明 閱讀(18417) 評論(5)  編輯 收藏 引用 所屬分類: C/C++G11N/ICU
1. printf 只能提供ANSI/MB 的輸出,不支持輸出unicode stream.
例如:
wchar_t?test[]=L"測試1234";
printf(
"%s",test);
是不會正確輸出的


2.wprintf 同樣不會提供unicode output,
?? 但是他會把wchar_t的string轉為locale的SB/MB字符編碼,然后輸出
例如:
wchar_t?test[]?=?L"測試Test";
wprintf(L
"%s",test);
會輸出??1234之類的字符串,或者不輸出任何結果
因為wprintf沒有辦法把L"測試Test"轉為默認的ANSI,需要設置locale
setlocale(LC_ALL,"chs");
wchar_t?test[]?
=?L"測試Test";
wprintf(L
"%s",test);
會有正確的輸出
等同于printf("%ls",test);

綜上:? CRT I/O functions do not provide Unicode output.

3. Window console自從NT4就是一個真正的unicode console
不過輸出unicode string,只有使用Windows API, WriteConsoleW
例如:
wchar_t?test[]?=?L"測試1234";
DWORD?ws;
WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE),test,wcslen(test),
&ws,NULL);
可以正確的輸出而不需要設置locale,因為是真正的unicode的輸出,跟codepage無關

4. 如何實現跨平臺的console output
??? 不要使用wchar_t和wprintf,因為這些都依賴于編譯器.
???? ICU是IBM的一個成熟的跨平臺支持unicode的libary,推薦使用

以下是ICU的uprintf實現

void?uprintf(const?UnicodeString?&str)?{
????
char?*buf?=?0;
????int32_t?len?
=?str.length();
????int32_t?bufLen?
=?len?+?16;
????int32_t?actualLen;
????buf?
=?new?char[bufLen?+?1];
????actualLen?
=?str.extract(0,?len,?buf/*,?bufLen*/);?//?Default?codepage?conversion
????buf[actualLen]?=?0;
????printf(
"%s",?buf);
????delete?buf;
}
它也是先把Unicode string轉化為本地的codepage,然后printf,雖然也不是unicode output,但是跨平臺,大多數情況會工作得很好。

Feedback

# re: 深入 printf / wprintf / console下的unicode output  回復  更多評論   

2006-06-22 09:19 by niming
ICU是個什么庫?

如果僅僅為了使用printf這些函數而用其他的庫,感覺不是很爽。

前段時間測試了一些C++的其他library,雖然功能不錯,但換到其他機器就需要不停的配置,如果有新同事或者交給其他人來做的話也同樣不能避免這套復雜的環境配置流程。這點太郁悶了。

# re: 深入 printf / wprintf / console下的unicode output  回復  更多評論   

2006-06-22 09:25 by 小明
ICU當然不僅僅是printf這么簡單了

ICU是IBM為了支持i18n而開發的跨平臺的庫。
支持各種編碼轉化,本地化輸出(時間/貨幣等等),resource bundle等。

# 從文件讀取呢  回復  更多評論   

2009-09-29 20:40 by 北河三
一個unicode的編碼的文本文件怎么讀取?
不是我說,你的例子不詳細,有的東西根本就沒定義,也無法輸出正確結果:
STD_OUTPUT_HANDLE 是你制造的?
完整的代碼是一份也沒有,做學問這樣子是不行的

# re: 深入 printf / wprintf / console下的unicode output  回復  更多評論   

2010-02-11 14:20 by 1+2=3
@北河三
WinBase.h 1765
STD_OUTPUT_HANDLE

作者已經說的很詳細了,難道要嚼細了吐給你嗎?

# re: 深入 printf / wprintf / console下的unicode output  回復  更多評論   

2010-04-15 13:53 by classfree
WCHAR buf[] = L"我是一個很Y的程序員";
printf("%ws\n", buf);
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产视频精品网| 欧美视频在线观看免费| 尤物在线观看一区| 另类综合日韩欧美亚洲| 免费在线视频一区| 中文欧美日韩| 欧美一区二区三区四区夜夜大片| 国内精品视频在线观看| 欧美成人精精品一区二区频| 欧美精品久久一区二区| 亚洲女爱视频在线| 久久免费少妇高潮久久精品99| 在线成人免费视频| 99av国产精品欲麻豆| 国产欧美日韩精品丝袜高跟鞋| 免播放器亚洲| 欧美三级在线视频| 久久久免费观看视频| 欧美精品性视频| 久久精品日产第一区二区三区| 美女成人午夜| 欧美一区二区私人影院日本| 另类成人小视频在线| 午夜天堂精品久久久久| 久久在线免费观看| 欧美伊人影院| 欧美日韩国产一区二区| 久久久中精品2020中文| 欧美视频网站| 亚洲福利一区| 国产一本一道久久香蕉| 亚洲美女精品一区| 在线视频观看日韩| 亚洲免费影视| 在线视频日韩| 欧美成人一区二免费视频软件| 欧美在线观看日本一区| 欧美日韩免费在线| 欧美激情视频在线播放 | 亚洲欧洲精品一区二区精品久久久 | 9人人澡人人爽人人精品| 欧美一区1区三区3区公司| 在线午夜精品自拍| 蜜桃av一区二区三区| 久久综合五月| 国产亚洲aⅴaaaaaa毛片| 一本综合久久| 在线一区二区三区做爰视频网站| 久久人人精品| 蜜桃av一区二区三区| 国产伊人精品| 欧美一区二区三区啪啪| 欧美亚洲综合网| 国产精品乱码一区二区三区| 一区二区欧美日韩| 亚洲午夜女主播在线直播| 欧美久久成人| 日韩一级网站| 午夜精品理论片| 国产精品免费在线| 亚洲一区二区黄色| 欧美一级视频精品观看| 国产精品一区二区在线| 午夜伦理片一区| 久久久www免费人成黑人精品 | 久久婷婷久久| 欧美大片免费观看| 亚洲麻豆视频| 欧美日韩少妇| 亚洲自拍都市欧美小说| 久久国产黑丝| 在线观看成人av| 免费欧美在线视频| 亚洲精品综合在线| 亚洲免费视频网站| 国产性猛交xxxx免费看久久| 久久精品亚洲| 亚洲激情视频网| 亚洲视频一二| 国产日产精品一区二区三区四区的观看方式 | 一区二区国产精品| 国产精品v日韩精品| 亚洲欧美中文日韩在线| 久久永久免费| 日韩网站在线| 国产精品无码专区在线观看 | 99xxxx成人网| 久久国内精品自在自线400部| 娇妻被交换粗又大又硬视频欧美| 免费欧美在线视频| 亚洲在线中文字幕| 免费一级欧美在线大片| 一本大道久久a久久精品综合| 国产精品揄拍一区二区| 久久亚洲综合色| 一区二区三区久久精品| 免费观看不卡av| 亚洲一区自拍| 91久久精品国产91久久性色| 国产精品久久久久久久久久免费看| 久久国产一区二区三区| 亚洲毛片在线免费观看| 久久久高清一区二区三区| 欧美视频精品一区| 美女黄毛**国产精品啪啪| 亚洲一区不卡| 亚洲区国产区| 美女精品自拍一二三四| 亚洲欧美日韩一区二区在线 | 亚洲卡通欧美制服中文| 久久亚洲精品一区| 亚洲欧美电影在线观看| 亚洲精品国产品国语在线app| 国产精品日韩专区| 欧美女激情福利| 老色鬼精品视频在线观看播放| 亚洲一区二区在线视频 | 欧美电影免费| 久久久亚洲国产美女国产盗摄| 亚洲一区二区三区免费在线观看| 在线成人亚洲| 精品99视频| 国产专区一区| 国产亚洲欧洲一区高清在线观看 | 欧美精品精品一区| 免费观看成人| 免费成人av在线看| 久久久伊人欧美| 久久精品亚洲一区二区三区浴池| 亚洲一区999| 亚洲影音一区| 亚洲影院免费观看| 亚洲在线视频免费观看| 亚洲图片你懂的| 亚洲午夜精品视频| 亚洲深夜福利在线| 一本色道婷婷久久欧美| 中文国产成人精品| 宅男噜噜噜66国产日韩在线观看| 亚洲精品美女久久7777777| 亚洲人成小说网站色在线| 亚洲欧洲日本国产| 亚洲精品少妇| 中日韩美女免费视频网址在线观看 | 久久久99精品免费观看不卡| 欧美有码在线观看视频| 欧美在线综合视频| 久久免费视频在线观看| 麻豆av福利av久久av| 欧美激情2020午夜免费观看| 欧美日韩第一页| 国产精品久久久久999| 国产欧美一区二区三区在线老狼 | 久久免费视频网| 欧美理论电影在线播放| 欧美午夜www高清视频| 国产欧美精品一区二区色综合| 国产一区二区无遮挡| 亚洲国产高清一区二区三区| 亚洲精品国产拍免费91在线| 亚洲性色视频| 久久久久久97三级| 亚洲国内欧美| 亚洲专区在线| 久久综合色天天久久综合图片| 欧美国产日韩在线| 国产精品视频导航| 欧美久久婷婷综合色| 国产精品三级久久久久久电影| 国产一二精品视频| 99国内精品久久久久久久软件| 午夜精品久久久久久久久 | 亚洲桃花岛网站| 久久另类ts人妖一区二区| 亚洲国产欧美日韩另类综合| 亚洲视频电影在线| 久久午夜电影| 国产精品极品美女粉嫩高清在线| 国产一区二区三区久久精品| 亚洲精一区二区三区| 久久久国产视频91| 亚洲精品中文字幕在线| 久久不射中文字幕| 国产精品va在线播放我和闺蜜| 又紧又大又爽精品一区二区| 亚洲欧美成人网| 亚洲国产99| 欧美专区一区二区三区| 欧美日韩中文字幕在线| 亚洲国产高清视频| 久久精品视频va| 亚洲一区二区3| 欧美精品国产一区| 亚洲高清自拍| 久久久99精品免费观看不卡| 一区二区三区欧美亚洲| 欧美激情视频一区二区三区不卡| 狠狠干综合网| 久久超碰97人人做人人爱| 在线视频免费在线观看一区二区|