using System;
public class Test
{
public static void Main( )
{
Unicode2HTML( "峯" ) ;
}
private string Unicode2HTML( string unc)
{
StringBuilder sb = new StringBuilder( ) ;
//以;將文字拆成陣列
string[ ] tmp = unc.Split ( ';' ) ;
//檢查最後一個字元是否為【;】,因為有【英文】、【阿拉伯數字】、【&#XXXX;】
//若最後一個要處理的字並非HTML UNICODE則不進行處理
bool Process_last = unc.Substring ( unc.Length - 1 , 1 ) .Equals ( ";" ) ;
//Debug.WriteLine(tmp.Length + "");
for ( int i = 0 ; i < tmp.Length ; i++ )
{
//以&#將文字拆成陣列
string[ ] tmp2 = tmp[ i] .Split ( new string[ ] { "&#" } , StringSplitOptions.RemoveEmptyEntries ) ;
if ( tmp2.Length == 1 )
{
//如果長度為1則試圖轉換UNICODE回字符,若失敗則使用原本的字元
if ( i != tmp.Length - 1 )
{
try
{
sb.Append ( Convert.ToChar ( Convert.ToInt32 ( int .Parse ( tmp2[ 0 ] ) ) ) .ToString ( ) ) ;
}
catch
{
sb.Append ( tmp2[ 0 ] ) ;
}
}
else
{
sb.Append ( tmp2[ 0 ] ) ;
}
}
if ( tmp2.Length == 2 )
{
//若長度為2,則第一項不處理,只處理第二項即可
sb.Append ( tmp2[ 0 ] ) ;
sb.Append ( Convert.ToChar ( Convert.ToInt32 ( int .Parse ( tmp2[ 1 ] ) ) ) .ToString ( ) ) ;
}
}
return sb.ToString ( ) ;
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCVVuaWNvZGUySFRNTCgiJiN4NUNFRjsiKTsKCX0KCQoJcHJpdmF0ZSBzdHJpbmcgVW5pY29kZTJIVE1MKHN0cmluZyB1bmMpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CiAgICAgLy/ku6U75bCH5paH5a2X5ouG5oiQ6Zmj5YiXCiAgICAgc3RyaW5nW10gdG1wID0gdW5jLlNwbGl0KCc7Jyk7CiAgICAgLy/mqqLmn6XmnIDlvozkuIDlgIvlrZflhYPmmK/lkKbngrrjgJA744CR77yM5Zug54K65pyJ44CQ6Iux5paH44CR44CB44CQ6Zi/5ouJ5Lyv5pW45a2X44CR44CB44CQJiNYWFhYO+OAkQogICAgIC8v6Iul5pyA5b6M5LiA5YCL6KaB6JmV55CG55qE5a2X5Lim6Z2eSFRNTCBVTklDT0RF5YmH5LiN6YCy6KGM6JmV55CGCiAgICAgYm9vbCBQcm9jZXNzX2xhc3QgPSB1bmMuU3Vic3RyaW5nKHVuYy5MZW5ndGggLSAxLCAxKS5FcXVhbHMoIjsiKTsKICAgICAvL0RlYnVnLldyaXRlTGluZSh0bXAuTGVuZ3RoICsgIiIpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0bXAuTGVuZ3RoOyBpKyspCiAgICB7CiAgICAgICAgLy/ku6UmI+Wwh+aWh+Wtl+aLhuaIkOmZo+WIlwogICAgICAgIHN0cmluZ1tdIHRtcDIgPSB0bXBbaV0uU3BsaXQobmV3IHN0cmluZ1tdIHsgIiYjIiB9LCBTdHJpbmdTcGxpdE9wdGlvbnMuUmVtb3ZlRW1wdHlFbnRyaWVzKTsKICAgICAgICBpZiAodG1wMi5MZW5ndGggPT0gMSkKICAgICAgICB7CiAgICAgICAgICAgIC8v5aaC5p6c6ZW35bqm54K6MeWJh+ippuWclui9ieaPm1VOSUNPREXlm57lrZfnrKbvvIzoi6XlpLHmlZfliYfkvb/nlKjljp/mnKznmoTlrZflhYMKICAgICAgICAgICAgaWYgKGkgIT0gdG1wLkxlbmd0aCAtIDEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRyeQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNiLkFwcGVuZChDb252ZXJ0LlRvQ2hhcihDb252ZXJ0LlRvSW50MzIoaW50LlBhcnNlKHRtcDJbMF0pKSkuVG9TdHJpbmcoKSk7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhdGNoCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHNiLkFwcGVuZCh0bXAyWzBdKTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICBzYi5BcHBlbmQodG1wMlswXSk7CiAgICAgICAgICAgfQogICAgICAgfQogICAgICAgIGlmICh0bXAyLkxlbmd0aCA9PSAyKQogICAgICAgIHsKICAgICAgICAgICAgLy/oi6Xplbfluqbngroy77yM5YmH56ys5LiA6aCF5LiN6JmV55CG77yM5Y+q6JmV55CG56ys5LqM6aCF5Y2z5Y+vCiAgICAgICAgICAgIHNiLkFwcGVuZCh0bXAyWzBdKTsKICAgICAgICAgICBzYi5BcHBlbmQoQ29udmVydC5Ub0NoYXIoQ29udmVydC5Ub0ludDMyKGludC5QYXJzZSh0bXAyWzFdKSkpLlRvU3RyaW5nKCkpOwogICAgICAgIH0KICAgIH0KCiAKICByZXR1cm4gc2IuVG9TdHJpbmcoKTsKfQp9
compilation info
prog.cs(7,3): error CS0120: An object reference is required to access non-static member `Test.Unicode2HTML(string)'
prog.cs(12,6): error CS0246: The type or namespace name `StringBuilder' could not be found. Are you missing `System.Text' using directive?
prog.cs(30,21): error CS0841: A local variable `sb' cannot be used before it is declared
prog.cs(34,21): error CS0841: A local variable `sb' cannot be used before it is declared
prog.cs(39,16): error CS0841: A local variable `sb' cannot be used before it is declared
prog.cs(45,13): error CS0841: A local variable `sb' cannot be used before it is declared
prog.cs(46,12): error CS0841: A local variable `sb' cannot be used before it is declared
prog.cs(51,10): error CS0841: A local variable `sb' cannot be used before it is declared
Compilation failed: 8 error(s), 0 warnings
stdout