c# 转换字符串编码非 Ascii 字符
c# converting string Encode Non Ascii Characters
我有这个 UI 需要 unicode 值来显示上标字符。入站数据有 html code.The 我能看到的唯一问题是它需要一个额外的反斜杠。我将一串“®”传递给 EncodeNonAsciiCharacters。
Is there any way to return \u00AE
and not \u00AE
static string EncodeNonAsciiCharacters(string value)
{
StringBuilder sb = new StringBuilder();
foreach (char c in value)
{
if (c > 127)
{
string encodedtext = ((int)c).ToString("x4");
//string encodedValue = "\u" + encodedtext.ToUpper();
string encodedValue = @"\u" + encodedtext.ToUpper();
sb.Append(encodedValue);
}
else
{
sb.Append(c);
}
}
return sb.ToString();
}
我已经写了一个程序来演示你的要求。如果在字符串前使用 @,则无需转义字符串文字。这意味着按字面解释字符串(也就是说,如果使用 @ 前缀,则不能转义字符串中的任何字符)。它在可以使用的情况下增强了可读性。
using System;
using System.Text;
public class Program
{
public static void Main()
{
string value="⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎ ®";
StringBuilder sb = new StringBuilder();
foreach (char c in value)
{
if (c > 127)
{
string encodedtext = ((int)c).ToString("x4");
string encodedValue = @"\u" + encodedtext.ToUpper();
sb.Append(encodedValue);
//Console.WriteLine(encodedValue);
}
else
{
sb.Append(c);
}
}
Console.WriteLine(sb.ToString());
}
}
输出:
\u2078
\u2079
\u207A
\u207B
\u207C
\u207D
\u207E
\u2080
\u2081
\u2082
\u2083
\u2084
\u2085
\u2086
\u2087
\u2088
\u2089
\u208A
\u208B
\u208C
\u208D
\u208E
\u00AE
我有这个 UI 需要 unicode 值来显示上标字符。入站数据有 html code.The 我能看到的唯一问题是它需要一个额外的反斜杠。我将一串“®”传递给 EncodeNonAsciiCharacters。
Is there any way to return
\u00AE
and not\u00AE
static string EncodeNonAsciiCharacters(string value)
{
StringBuilder sb = new StringBuilder();
foreach (char c in value)
{
if (c > 127)
{
string encodedtext = ((int)c).ToString("x4");
//string encodedValue = "\u" + encodedtext.ToUpper();
string encodedValue = @"\u" + encodedtext.ToUpper();
sb.Append(encodedValue);
}
else
{
sb.Append(c);
}
}
return sb.ToString();
}
我已经写了一个程序来演示你的要求。如果在字符串前使用 @,则无需转义字符串文字。这意味着按字面解释字符串(也就是说,如果使用 @ 前缀,则不能转义字符串中的任何字符)。它在可以使用的情况下增强了可读性。
using System;
using System.Text;
public class Program
{
public static void Main()
{
string value="⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾ ₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎ ®";
StringBuilder sb = new StringBuilder();
foreach (char c in value)
{
if (c > 127)
{
string encodedtext = ((int)c).ToString("x4");
string encodedValue = @"\u" + encodedtext.ToUpper();
sb.Append(encodedValue);
//Console.WriteLine(encodedValue);
}
else
{
sb.Append(c);
}
}
Console.WriteLine(sb.ToString());
}
}
输出:
\u2078
\u2079
\u207A
\u207B
\u207C
\u207D
\u207E
\u2080
\u2081
\u2082
\u2083
\u2084
\u2085
\u2086
\u2087
\u2088
\u2089
\u208A
\u208B
\u208C
\u208D
\u208E
\u00AE