在 C# 上有没有一种方法可以将 unicode 字符串转换为 ASCII + html 实体,然后再转换回来?看,在 PHP 中,我可以这样做:
<?php
// RUN ME AT COMMAND LINE
$sUnicode = '<b>Jöhan Strauß</b>';
echo "UNICODE: $sUnicode\n";
$sASCII = mb_convert_encoding($sUnicode, 'HTML-ENTITIES','UTF-8');
echo "ASCII: $sASCII\n";
$sUnicode = mb_convert_encoding($sASCII, 'UTF-8', 'HTML-ENTITIES');
echo "UNICODE (TRANSLATED BACK): $sUnicode\n";
背景:
- 我需要它在 C# .NET 2 中工作,因为我们受到限制,不能在旧应用程序中使用更高版本的 .NET 库。
- 我处理此应用程序的 PHP 后端。我想就此项目与 C# 前端团队分享一些技巧。
最佳答案
是的,有 Encoding.Convert
,虽然我自己很少使用它:
string text = "<b>Jöhan Strauß</b>";
byte[] ascii = Encoding.ASCII.GetBytes(text);
byte[] utf8 = Encoding.Convert(Encoding.ASCII, Encoding.UTF8, ascii);
我很少发现我想要从一种编码形式转换为另一种编码形式 - 执行从文本到二进制 (Encoding.GetBytes
) 或相反 (Encoding.GetString
) 的单向转换更为常见。
关于c# - C# 有类似 PHP 的 mb_convert_encoding() 的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13549006/