4
更換Unicode字符我有例如字符串:字符串在C#
string str = "ĄĆŹ - ćwrą";
我怎麼能代替ACZ - CA與他們快捷方式? 結果對於例如字符串應該是:
str = "\u0104\u0106\u0179 \u2013 \u0107wr\u0105"
有沒有什麼快速更換方法?我不想使用。替換每個字符...
更換Unicode字符我有例如字符串:字符串在C#
string str = "ĄĆŹ - ćwrą";
我怎麼能代替ACZ - CA與他們快捷方式? 結果對於例如字符串應該是:
str = "\u0104\u0106\u0179 \u2013 \u0107wr\u0105"
有沒有什麼快速更換方法?我不想使用。替換每個字符...
像這樣轉換爲JSON字符串比它應該更麻煩,主要是因爲您需要使用Unicode代碼點,實際上意味着調用char.ConvertToUtf32
。爲了做到這一點,你需要以某種方式處理代理對; System.Globalization.StringInfo
可以幫助。
下面是一個使用這些構建模塊來執行轉換功能:
string str = "ĄĆŹ - ćwrą";
public string ToJsonString(string s)
{
var enumerator = StringInfo.GetTextElementEnumerator(s);
var sb = new StringBuilder();
while (enumerator.MoveNext())
{
var unicodeChar = enumerator.GetTextElement();
var codePoint = char.ConvertToUtf32(unicodeChar, 0);
if (codePoint < 0x80) {
sb.Append(unicodeChar);
}
else if (codePoint < 0xffff) {
sb.Append("\\u").Append(codePoint.ToString("x4"));
}
else {
sb.Append("\\u").Append((codePoint & 0xffff).ToString("x4"));
sb.Append("\\u").Append(((codePoint >> 16) & 0xffff).ToString("x4"));
}
}
return sb.ToString();
}
更換不串..的 – Sayse
可能重複[轉換Unicode字符串來逃脫ASCII字符串(http://stackoverflow.com/問題/ 1615559 /轉換 - unicode-strings-to-escaped-ascii-string) –
謝謝,我也剛剛找到它。問題解決了。 @Sayse我不想使用。更換數百次 – Yozer