从c#开始,没有看到重复。我想做的是:
此字符串:İntersport
转换为此字符串:\u0130ntersport
我找到了一种在unicode中转换所有内容但不转换特殊字符的方法。
提前感谢您的帮助
编辑:
我尝试过你的解决方案:
string source = matchedWebIDDest.name;
string parsedNameUnicode = string.Concat(source.Select(c => c < 32 || c > 255 ? "\\u" + ((int)c).ToString("x4") : c.ToString()));
但我得到:“System.Linq.Enumerable + WhereSelectEnumerableIterator`2 [Syst em.Char,System.Strin g]”
答案 0 :(得分:4)
您可以尝试使用 Linq :
using System.Linq;
...
string source = "İntersport";
// you may want to change 255 into 127 if you want standard ASCII table
string target = string.Concat(source
.Select(c => c < 32 || c > 255
? "\\u" + ((int)c).ToString("x4") // special symbol: command one or above Ascii
: c.ToString())); // within ascii table [32..255]
// \u0130ntersport
Console.Write(target);
修改:否 Linq 解决方案:
string source = "İntersport";
StringBuilder sb = new StringBuilder();
foreach (char c in source)
if (c < 32 || c > 255)
sb.Append("\\u" + ((int)c).ToString("x4"));
else
sb.Append(c);
string target = sb.ToString();