Posted on September 14th, 2008 at 17:17 by fr3@K
一方面是受到 jeffhung 與 augustinus 在 我家 與 clsung 那邊留下的迴響所啟發, 令一方面也是為了讓自己更清楚了解正確 wide string and multi-byte string 間轉換的 issue. 我寫了兩個 Wide string and Multi-Bytes string conversion functions 以及方便性的 wrapper (source code hosted by Google Code).
希望能做為一個範例提供給想進一步了解這題目的朋友 (this includes me) 把玩. 也希望能請對這題目有研究的朋友來 code review 以及留下意見, 幫助讓我完善這對 conversion functions 一起造福有這需求的使用者.
Disclaimer: 小弟對實作所使用的 API (wcrtomb 與 mbrtowc) 的行為不是非常肯定, 不敢宣稱其功能上的正確. 歡迎自行取用 (MIT-licensed), 但不提供任何保證.
![]() |
|
| Previous Post « re: string to/from wstring conversion « |
Next Post » Security Enhanced CRT, Safer Than Standard Library? » |








1. 我覺得int w2mb(wstr, )有問題,因為如果wstr中如果含有BMP外的字(如Extension B或Extension C的字),++cur就有問題。
2. 雖然Unicode在處理BMP外的字會面臨與MultiByte的字類似的難題,但是他們有一個差異,Unicode的編碼不會有MultiByte中LeadByte與SecondByte的問題不分的問題。在某些特定的情況下,MultiByte字串會有反向Parse字串的處理,可是我們卻有可能永遠分不出到底目前這個Byte究竟是LeadByte還是SecondByte。舉例來說,如果一篇MultiByte文章,所有的Byte都落在LeadByte範圍內,任取一個Byte我們都要反向Parse到文章的起頭,才能確定目前這一個Byte是LeadByte還是SecondByte。更何況有些function的傳入參數根本不包含文章的起頭。
Comment by buil — May 10, 2009 @ 10:56