将字符串转换为C#Unicode字符文字序列

时间:2016-05-22 08:23:21

标签: c# string unicode char literals

我正在寻找一种方法将字符串转换为C#中的Unicode字符文字序列。

示例:

输入:嗨!

输出:\ u0048 \ u0069 \ u0021

2 个答案:

答案 0 :(得分:6)

如果您的意思是希望输出为字符串,则可以遍历所有字符获取其Unicode十六进制值:

const string value = "Hi!";

var chars = value
    .Select(c => (int) c)
    .Select(c => $@"\u{c:x4}");

var result = string.Concat(chars);

有关正常工作的演示,请参阅this fiddle

答案 1 :(得分:3)

这是使用StringBuilder实现的相同方法。

StringBuilder sb = new StringBuilder();
foreach (char c in s)
    sb.AppendFormat("\\u{0:X4}",(uint)c);
return sb.ToString();