【问题标题】:Dynamic generate 8-Digit-Unicode to Character动态生成 8 位 Unicode 到字符
【发布时间】:2013-04-13 16:23:13
【问题描述】:

我要动态显示 Unicode,

例如,我知道"\U00020001" 会显示一个字符。 (下面的变量“standard_format”)。但是,我只能直接显示整个字符串("\U00020001")。

我想知道如何将该字符串显示为字符。

【问题讨论】:

    标签: c# unicode character


    【解决方案1】:

    如果您写"\U0002B695",整个字符串将被识别为转义序列。但是在"\\U0002B695" 中,只有\\ 会被识别为\ 的转义序列。我不知道如何以这种方式构建字符串文字,然后像编译器那样解析它。

    为了获取字符串,您需要将十六进制值转换为 int,然后将其转换为字符串:

    string txt_unicodePoint = "2B695";
    
    int value = int.Parse(txt_unicodePoint, System.Globalization.NumberStyles.HexNumber);
    string result = char.ConvertFromUtf32(value).ToString();
    

    【讨论】:

    【解决方案2】:

    我相信你想要的是 Char.Parse(string s) http://msdn.microsoft.com/en-us/library/system.char.parse.aspx 你会把你的转义序列 "\U000..." 字符串传递给它

    【讨论】:

    • 我使用了字符串 output2 = Char.Parse(output).ToString();
    • 但出现另一个错误:字符串必须恰好是一个字符长。
    • 确实如此。如果您尝试从现有字符串中提取这些转义序列,则必须对它们进行正则表达式匹配并单独解析。这样做的目的是什么?这是表单的一些“撰写”部分,人们可以在其中键入这些序列,并且您想显示编码的字符串?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 2019-03-08
    相关资源
    最近更新 更多