Tuesday, November 9, 2010

\uXXXX 的取代法

事緣有個project, 佢地send 黎d data 的中文字都是用 \uXXXX 的方式存在
佢地又死都唔肯改

咁點樣解決呢 ?

用c#度打 "\u5b89\u672c\u74b0\u7403\u4e9e\u592a\u80a1\u7968\u57fa\u91d1",
e ... 好正常咁出到 "安本環球亞太股票基金"



Console.Writeline("\u5b89\u672c\u74b0\u7403\u4e9e\u592a\u80a1\u7968\u57fa\u91d1")
出左一堆問號 .. OK. .. 肯定係code page 問題

跟住就埋首於點轉喇
用 getbytes ? failed, 點轉都係一堆問號

然後就有d 頭緒, 會唔會係c# 自己convert呢 ?
搵左好耐source 都係講將一個字轉, 冇講成串string咁轉

找了半日 .... 原來是咁簡單的
private static ConvertUTF8String(string input){
     Regex rx = new Regex(@"\\[u]([0-9A-F]{4})", RegexOptions.IgnoreCase);
     return rx.Replace(input, match => Convert.ToString((char) Int32.Parse(match.Value.Substring(2), NumberStyles.HexNumber)));
}

解釋一看就明

Labels:

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home