从 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()));
Run Code Online (Sandbox Code Playgroud)
但我得到:“System.Linq.Enumerable+WhereSelectEnumerableIterator`2[Syst??em.Char,System.Strin??g]”
您可以尝试使用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);
Run Code Online (Sandbox Code Playgroud)
编辑:没有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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1307 次 |
| 最近记录: |