青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評論 :: 0 Trackbacks
公告
我的隨筆
我的評論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網游開發(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊
公告照片
搜索
積分與排名
積分 - 660013
排名 - 25
最新評論
1.?re: boost::asio::spawn 將一統C++網絡庫
asio 成為C++首選網絡庫
--linda
2.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--金慶
3.?re: mingw編譯OrzNet
能發送一個mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
5.?re: log4cxx中文輸出錯誤補丁
評論內容較長,點擊標題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯誤(11061)
2.?SVN中邪惡的replace(10986)
3.?VS2005編譯libevent(10434)
4.?混音算法的學習與研究(10239)
5.?C調用lua腳本的效率測試(9020)
評論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯誤(18)
4.?C++引用優于指針(17)
5.?ACE與ASIO之間關于Socket編程的比較(16)
log4cxx中文輸出錯誤補丁
log4cxx中文輸出錯誤補丁
(金慶的專欄)
已提交Bug:https://issues.apache.org/jira/browse/LOGCXX-399
log4cxx_0.10.0及主干代碼,Windows下輸出中文,發現有多余輸出。
void main()
{
setlocale(LC_ALL, "");
LOG4CXX_INFO(pLog, "一二"); // log 2 chinese characters.
}
輸出為:一二二。
錯誤在 MbstowcsCharsetDecoder::decode().
size_t converted = mbsrtowcs(...
if (converted == (size_t) -1) {
...
} else {
stat = append(out, buf);
in.position(in.position() + converted); // ERROR!
}
mbsrtowcs()返回的是漢字的字數,而輸入緩沖區in的position是按字節計數的,
對于漢字,position應該增加2*converted,而不是converted.
因為position少增加了一半,所以后半部分字符串會重復解碼。
可如下更改:
if (converted == (size_t) -1) {
...
} else {
stat = append(out, buf);
// in.position(in.position() + converted); // ERROR!
if (src)
in.position(src - in.data());
else // mbsrtowcs() set src to NULL.
in.position(in.position() + strnlen(in.current(), in.remaining()));
}
此處的in是個二進制塊,其中可能會有0,而mbsrtowcs()的輸入應該是0結尾的字符串。
碰到0時,mbsrtowcs()認為已經成功轉換到串尾,并將src重設為NULL。
代碼中已經有對0的處理。
有可能mbsrtowcs()會越過輸入緩沖區的尾部一直讀取,最多為256字節,仍有可能出現垃圾字符。
但是現在的std::string實現有0結尾,所有才沒有出錯。若要更正這個錯誤,就需要在輸入緩沖區尾部添0。
posted on 2012-11-19 20:29
金慶
閱讀(1513)
評論(3)
編輯
收藏
引用
所屬分類:
1. C/C++
評論
#
re: log4cxx中文輸出錯誤補丁
2014-03-06 17:00
bigbad
很有幫助, 頂。
不過最后應該寫為:
in.position(in.position() + strnlen(src, in.remaining()));
否則只轉255個wchar_t
回復
更多評論
#
re: log4cxx中文輸出錯誤補丁
2014-03-06 17:37
bigbad
汗, 上面錯了。 最后更新position,應該這樣寫
if(src ==NULL)
{
in.position(in.limit());
}
else
{
in.position(in.position() + src - in.current());
}
回復
更多評論
#
re: log4cxx中文輸出錯誤補丁
2014-05-13 21:15
金慶
@bigbad
src不為空時,position到新的src處,這2種計算相同:
in.position(in.position() + src - in.current());
in.position(src - in.data());
src為空時,2種計算不相同:
in.position(in.limit());
in.position(in.position() + strnlen(in.current(), in.remaining()));
當in中間有'\0'時,in.limit()會跳過剩余的輸入串。
回復
更多評論
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
How are dtLinks created in NavMesh
C++ parameter passing rules
Naming Conventions for Accessors
Visual Studio 2019 Compiler Hangs
Fbx File Format Identifier
查找內存錯誤
std::thread 中的異常會丟失調用棧
用賦值代替 protobuf CopyFrom()
vs2017 linux 編譯輸出改成 vs 格式
為 LiteIDE 添加選中標記
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
亚洲手机在线
|
欧美一级视频
|
欧美日韩视频在线观看一区二区三区
|
**性色生活片久久毛片
|
久久一二三四
|
久久综合伊人
|
一本色道88久久加勒比精品
|
99这里只有精品
|
国产精品久久久久久久久搜平片
|
欧美亚洲免费电影
|
欧美一区二区三区视频在线
|
亚洲国产日韩美
|
avtt综合网
|
国内揄拍国内精品少妇国语
|
亚洲福利视频网
|
国产精品毛片在线
|
蜜臀av国产精品久久久久
|
欧美精品一区二区高清在线观看
|
亚洲一区国产
|
久热精品视频在线免费观看
|
亚洲网站在线
|
久热精品在线视频
|
亚洲综合视频一区
|
久久久噜噜噜久久
|
亚洲视频自拍偷拍
|
久久深夜福利
|
欧美一区二区成人6969
|
美女视频一区免费观看
|
亚洲色诱最新
|
麻豆久久婷婷
|
久久久久久穴
|
国产精品麻豆成人av电影艾秋
|
毛片一区二区三区
|
国产精品入口66mio
|
亚洲人永久免费
|
亚洲精品1区2区
|
西西裸体人体做爰大胆久久久
|
最新日韩中文字幕
|
在线观看欧美日韩国产
|
日韩视频在线一区二区三区
|
精品福利免费观看
|
午夜精品亚洲一区二区三区嫩草
|
在线中文字幕一区
|
欧美大片免费观看在线观看网站推荐
|
日韩一级不卡
|
亚洲人午夜精品
|
久久男人资源视频
|
久久久久久999
|
国产精品入口日韩视频大尺度
|
91久久精品美女
|
亚洲国产专区
|
你懂的国产精品
|
老司机一区二区
|
国内精品国产成人
|
欧美亚洲一区在线
|
久久成人国产精品
|
国产欧美1区2区3区
|
亚洲午夜一级
|
午夜激情一区
|
国产精品推荐精品
|
亚洲一区精品视频
|
亚洲免费一级电影
|
国产精品狼人久久影院观看方式
|
亚洲美女电影在线
|
亚洲校园激情
|
国产精品久久久久久久久久直播
|
亚洲美女av黄
|
欧美在线中文字幕
|
欧美日韩1区2区
|
亚洲精品在线观看视频
|
亚洲色诱最新
|
国产三区精品
|
久久九九有精品国产23
|
亚洲一区二区在线观看视频
|
国产精品大片
|
亚洲欧美美女
|
另类专区欧美制服同性
|
亚洲电影在线免费观看
|
免费不卡亚洲欧美
|
日韩一级精品
|
欧美在线视频一区
|
伊甸园精品99久久久久久
|
久久中文字幕一区
|
欧美日韩无遮挡
|
亚洲精品女av网站
|
亚洲精品中文字幕有码专区
|
欧美精品久久久久久久免费观看
|
在线视频日本亚洲性
|
欧美在线在线
|
亚洲精品久久久一区二区三区
|
欧美日韩三区
|
久久精品99久久香蕉国产色戒
|
欧美岛国在线观看
|
亚洲欧美日韩天堂一区二区
|
激情欧美一区二区三区在线观看
|
欧美成人免费网
|
亚洲影院在线
|
亚洲精品1234
|
久久久噜噜噜久久中文字幕色伊伊
|
久久精品国产欧美激情
|
久久久综合精品
|
亚洲精品视频在线看
|
国产精品五月天
|
欧美激情精品久久久
|
亚洲欧美日本日韩
|
亚洲精品免费一二三区
|
久久福利一区
|
亚洲自拍偷拍网址
|
亚洲黄色三级
|
久久青草欧美一区二区三区
|
一本色道久久综合亚洲精品不卡
|
国产一区二区三区在线观看精品
|
日韩视频免费观看高清在线视频
|
亚洲人成7777
|
国产视频丨精品|在线观看
|
欧美精品午夜
|
另类av一区二区
|
午夜精品在线看
|
一本一本久久a久久精品综合妖精
|
免费日韩视频
|
久久久久久久久岛国免费
|
亚洲免费中文
|
欧美日韩高清在线观看
|
久久综合久久综合久久综合
|
午夜精品成人在线
|
亚洲一区二区不卡免费
|
亚洲美女一区
|
亚洲国产专区校园欧美
|
欧美成人蜜桃
|
美女视频网站黄色亚洲
|
欧美黄色影院
|
亚洲狼人综合
|
亚洲国产精品精华液网站
|
另类天堂av
|
免费成人性网站
|
久久综合色综合88
|
久久一区中文字幕
|
久久久久久夜
|
狼人社综合社区
|
美女爽到呻吟久久久久
|
欧美不卡在线
|
亚洲第一视频网站
|
亚洲国产精品久久久久婷婷884
|
亚洲美洲欧洲综合国产一区
|
亚洲高清av在线
|
亚洲激情av在线
|
亚洲久久成人
|
一区二区三区欧美激情
|
一区二区三区.www
|
国产精品视频网址
|
国产人成一区二区三区影院
|
国产伦精品一区二区三区高清版
|
国产欧美精品一区
|
国产一区二区三区四区hd
|
麻豆精品视频在线观看
|
久久久精品性
|
欧美成人激情在线
|
亚洲激情在线观看视频免费
|
一本色道久久综合精品竹菊
|
亚洲午夜小视频
|
久久久久久久激情视频
|
欧美大片免费
|
国产精品免费网站在线观看
|
国产亚洲精品aa
|
亚洲高清自拍
|
亚洲一区二区在线观看视频
|
久久精品在线免费观看
|
亚洲电影自拍
|
亚洲午夜精品在线
|
久久综合伊人77777尤物
|
欧美日韩亚洲免费
|
久久伊人免费视频
|
欧美激情视频网站
|
一区二区动漫
|
久久视频在线免费观看
|
亚洲一区二区三区久久
|
久久精品国产亚洲高清剧情介绍
|
猛干欧美女孩
|
国产欧美日本一区二区三区
|
亚洲第一主播视频
|
亚洲午夜日本在线观看
|
久久天堂av综合合色
|
日韩一级片网址
|
久久人体大胆视频
|
欧美第一黄网免费网站
|
欧美一区二区三区视频
|
亚洲午夜精品一区二区三区他趣
|
久久综合亚洲社区
|
国产欧美日韩亚洲
|
99精品视频免费
|
久久亚洲一区二区
|
亚洲一区日韩在线
|
欧美另类变人与禽xxxxx
|
激情欧美一区
|
久久精品国产综合精品
|
99综合视频
|
欧美精品一线
|
最新日韩中文字幕
|
美女精品在线
|
久久成人一区
|