是否有内置的.NET函数或简单的转换方式:
"01234"
为:
"\u2070\u00B9\u00B2\u00B3\u2074"
请注意,上标1,2和3不在\u2070-\u209F但\u0080-\u00FF范围内。
答案 0 :(得分:19)
编辑:我没有注意到上标字符不像\u2070
- \u2079
那么简单。您可能想要在字符之间设置映射。如果你只需要数字,你可以很容易地索引到一个字符串:
const string SuperscriptDigits =
"\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079";
然后使用LINQ:
string superscript = new string(text.Select(x => SuperscriptDigits[x - '0'])
.ToArray());
或没有:
char[] chars = text.ToArray();
for (int i = 0; i < chars.Length; i++)
{
chars[i] = SuperscriptDigits[chars[i] - '0'];
}
string superscript = new string(chars);