作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个来自文本文件的 Unicode 字符串。我想展示真实的性格。
例如:
\u8ba1\u7b97\u673a\u2022\u7f51\u7edc\u2022\u6280\u672f\u7c7b
当从文本文件中读取这个字符串时,使用StreamReader.ReadToLine()
,它会将\
转义为'\\'
,例如"\\u8ba1"
,这是不需要的。
它将显示与文本相同的 Unicode 字符串。我想要的是显示真实的角色。
"\\u8ba1"
更改为 "\u8ba1"
。 最佳答案
如果你有这样的字符串
var input1 = "\u8ba1\u7b97\u673a\u2022\u7f51\u7edc\u2022\u6280\u672f\u7c7b";
// input1 == "计算机•网络•技术类"
您不需要取消转义任何内容。它只是包含转义序列的字符串文字,而不是字符串本身。
如果你有这样的字符串
var input2 = @"\u8ba1\u7b97\u673a\u2022\u7f51\u7edc\u2022\u6280\u672f\u7c7b";
您可以使用以下正则表达式取消转义:
var result = Regex.Replace(
input2,
@"\\[Uu]([0-9A-Fa-f]{4})",
m => char.ToString(
(char)ushort.Parse(m.Groups[1].Value, NumberStyles.AllowHexSpecifier)));
// result == "计算机•网络•技术类"
关于c# - 如何在 C# 中转义 unicode 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8558671/
我是一名优秀的程序员,十分优秀!