2012-11-08 21 views
15

可能性の重複:
Converting Unicode strings to escaped ascii string変換文字列

がどのように私は\u0131...のようなものにä...変換することができますか?

これを行うための機能はありますか?

PS:この方法の横に

:[申し訳ありません@Kendallフレイ:-)]

char a = 'ä'; 
string escape = "\\u" + ((int)a).ToString("X").PadLeft(4, '0'); 
+0

@ JonSkeetにはREADY機能がありませんか? –

+6

カット&ペーストする準備が整いました... –

+0

'string.isNullOrEmpty'コードもカット&ペーストできます。私の質問は' string.isNullOrEmpty'のような準備ができています –

答えて

22

ここではエスケープシーケンスに文字を変換する機能です。

string GetEscapeSequence(char c) 
{ 
    return "\\u" + ((int)c).ToString("X4"); 
} 

それは、 1ライナーよりもずっと良くなるわけではありません。

いいえ、私の知る限り、組み込み関数はありません。

+2

私はPadLeftを呼び出すのではなく、書式文字列内で左パディングを正しく得る方法があると思っています... –

+0

@JonSkeet - ToString( "X4") 'に変更し、' PadLeft'トリックを行う。 –

+2

@JonSkeet Better? –

6

組み込み関数AFAIKはありません。ここでは、動作する非常に愚かな解決策があります。しかし、Kendall Freyはずっと優れた変種を提供しました。

string GetUnicodeString(string s) 
{ 
    StringBuilder sb = new StringBuilder(); 
    foreach (char c in s) 
    { 
     sb.Append("\\u"); 
     sb.Append(String.Format("{0:x4}", (int)c)); 
    } 
    return sb.ToString(); 
}