【问题标题】:C# - Replace Chars with its Unicode instanceC# - 用它的 Unicode 实例替换 Chars
【发布时间】:2017-09-30 14:42:25
【问题描述】:

我正在开发 从 JSON 格式读取书籍的 android 应用程序。为了创建这种类型的书籍,我需要 桌面应用程序,因为它很舒服,我选择了C#。


首先我想说的是,在我的母语中,有很多字符应该用Unicode编码而不是ASCII例如... [ə ç ş ğ ö ü 等等]


我的问题是某些字符格式的 Json 存在问题,我应该使用此字符的实例。(Unicode 实例)。例如:

string text = "asdsdas";
text = ConvertToUnicode(Text);//->/u231/u213/u123...

我尝试了很多方法在 JavaScript 中实现这一点,但我做不到。现在开发人员请帮助我在 C# 中解决这个问题。提前感谢任何建议对我来说都可以:)。

【问题讨论】:

  • JSON 可以是 Unicode (UTF-8/16),因此不需要转义超出标准 JSON 保留字符集的任何内容。如果您在使用 Unicode 时遇到问题,那么这是您如何编码/传输数据的问题。
  • 我相信你应该阅读joelonsoftware.com/articles/Unicode.html
  • 男士们,我猜你没有正确理解我...对不起,但我想转换:你好 -> U+0048 U+0065 U+006C U+006C U+006F 你能明白吗?
  • 是的,但你不需要这样做,{"hçi": "əçşğöü"} 是完全有效的 JSON。失败请参阅Convert a Unicode string to an escaped ASCII string
  • 我认为您接受的答案确实回答了您提出的问题。但是作为@AlexK。指出除非系统的某些部分损坏,否则您不需要这样做。所以这变成了XY Problem

标签: c# json unicode


【解决方案1】:

你可以定义一个扩展方法:

public static class Extension {
    public static string ToUnicodeString(this string str) {
        StringBuilder sb = new StringBuilder();
        foreach(var c in str) {
            sb.Append("\\u" + ((int) c).ToString("X4"));
        }
        return sb.ToString();
    }
}

可以像myString.ToUnicodeString()这样调用

在此demo 中查看。

【讨论】:

    猜你喜欢
    • 2011-08-03
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 1970-01-01
    相关资源
    最近更新 更多