2011-11-12 49 views
1

我希望將字符串「123」轉換爲像「\ u0031 \ u0032 \ u0033 \ u0033」這樣的字符串。我怎樣才能在.NET中做到這一點? 例如:反向轉換:將字符串轉換爲us-ascii in c#

Encoding enc = Encoding.GetEncoding("us-ascii", 
              new EncoderExceptionFallback(), 
              new DecoderExceptionFallback()); 
      byte[] by = enc.GetBytes(s); 
      string ans = enc.GetString(by); 
      return ans; 

回答

7

字符串在.NET已經是Unicode的,所以沒有必要將它們從Unicode轉換爲Unicode。

如果你想輸出一個unicode字符串逃脫,那就試試這個:

string ans = string.Concat(s.Select(c => string.Format("\\u{0:x4}", (int)c)).ToArray()); 

結果:

\u0031\u0032\u0033 

看到它聯機工作:ideone

在.NET 4.0中,你可以省略對ToArray的呼叫。

0
string ans = Regex.Replace(s, ".", m => String.Format(@"\u{0:x4}", (int)m.Value[0]));