如何将货币符号转换为相应的 HTML 实体
How to convert currency symbol to corresponding HTML entity
System.Net.WebUtility.HtmlDecode("€"); // returns €
System.Net.WebUtility.HtmlEncode("€"); // also returns €
如何将 €(或任何其他货币符号)转换为相应的 html 实体。
在这个例子中€ => €
我正在使用 .Net 4.6.1
HtmlEncode
和 HtmlDecode
不对称。
HtmlEncode
只会编码少数特殊字符:
<
=> <
>
=> >
&
=> &
'
=> '
"
=> "
对于一些 unicode 字符,它会将它们转换为 &#<num>;
格式。
因此不会发生到 HtmlEntities 的转换。
HtmlEncode
只查找一些特殊字符并将它们替换为硬编码值,另外还有一些更高的 ASCII 字符 (160 - 255),如 here. The only way to encode into entity names is by specifying them manually. I gave it a shot and built a wrapper around the System.Net.WebUtility
class while leveraging the existing Html entities dataset used by .NET to decode as well so that decoding continues to work with this solution. I've hosted it on github: WebUtilityWrapper 所述。您可以如下所示使用它:
WebUtilityWrapper.HtmlEncode("€"); // Returns €
WebUtilityWrapper.HtmlEncode("Δ"); // Returns Δ
WebUtilityWrapper.HtmlEncode("&"); // Returns &
WebUtilityWrapper.HtmlEncode("$"); // Returns $
WebUtilityWrapper.HtmlEncode("€¢£¥"); // Returns €¢£¥
我已经通过编码和解码来测试它,然后验证我们是否获得了大量 unicode 字符的原始字符串。分享更多测试:
HtmlEncode() 响应使用框架的 HtmlEncode: (link)
// Alphabets
$+0123456789<=>ABCDEFGHIJKLMNOPQRSTUVWXYZ^`abcdefghijklmnopqrstuvwxyz|~
// Unicode 162 to 254
¢£¤¥¦§¨©ª¬®¯°
±´µ¶¸ºÀÁÂÃÄÅÆ
ÇÈÉÊËÌÍÎÏÐÑÒÓ
ÔÕÖרÙÚÛÜÝÞßà
áâãäåæçèéêëìí
îïðñòóôõö÷øùú
ûüýþ
// Unicodes for Greek Alphabet
ΑΒΓΔΕΖΗΘΙΚΛΜΝ
// Unicodes for 9824 - 9830
♠♣♥♦
HtmlEncode() 响应使用 WebUtilityWrapper.HtmlEncode:
// Alphabets
$+0123456789<=>ABCDEFGHIJKLMNOPQRSTUVWXYZ^`abcdefghijklmnopqrstuvwxyz|~
// Unicode 162 to 254
¢£¤¥¦§¨©ª¬®¯°
±´µ¶¸ºÀÁÂÃÄÅÆ
ÇÈÉÊËÌÍÎÏÐÑÒÓ
ÔÕÖרÙÚÛÜÝÞßà
áâãäåæçèéêëìí
îïðñòóôõö÷øùú
ûüýþ
// Unicodes for Greek alphabet
ΑΒΓΔΕΖΗΘΙΚΛΜΝ
ΞΟΠΡΣΤΥΦΧΨΩ
// Unicodes for 9824 - 9830
♠♣♥♦
希望对您有所帮助!
System.Net.WebUtility.HtmlDecode("€"); // returns €
System.Net.WebUtility.HtmlEncode("€"); // also returns €
如何将 €(或任何其他货币符号)转换为相应的 html 实体。
在这个例子中€ => €
我正在使用 .Net 4.6.1
HtmlEncode
和 HtmlDecode
不对称。
HtmlEncode
只会编码少数特殊字符:
<
=><
>
=>>
&
=>&
'
=>'
"
=>"
对于一些 unicode 字符,它会将它们转换为 &#<num>;
格式。
因此不会发生到 HtmlEntities 的转换。
HtmlEncode
只查找一些特殊字符并将它们替换为硬编码值,另外还有一些更高的 ASCII 字符 (160 - 255),如 here. The only way to encode into entity names is by specifying them manually. I gave it a shot and built a wrapper around the System.Net.WebUtility
class while leveraging the existing Html entities dataset used by .NET to decode as well so that decoding continues to work with this solution. I've hosted it on github: WebUtilityWrapper 所述。您可以如下所示使用它:
WebUtilityWrapper.HtmlEncode("€"); // Returns €
WebUtilityWrapper.HtmlEncode("Δ"); // Returns Δ
WebUtilityWrapper.HtmlEncode("&"); // Returns &
WebUtilityWrapper.HtmlEncode("$"); // Returns $
WebUtilityWrapper.HtmlEncode("€¢£¥"); // Returns €¢£¥
我已经通过编码和解码来测试它,然后验证我们是否获得了大量 unicode 字符的原始字符串。分享更多测试:
HtmlEncode() 响应使用框架的 HtmlEncode: (link)
// Alphabets
$+0123456789<=>ABCDEFGHIJKLMNOPQRSTUVWXYZ^`abcdefghijklmnopqrstuvwxyz|~
// Unicode 162 to 254
¢£¤¥¦§¨©ª¬®¯°
±´µ¶¸ºÀÁÂÃÄÅÆ
ÇÈÉÊËÌÍÎÏÐÑÒÓ
ÔÕÖרÙÚÛÜÝÞßà
áâãäåæçèéêëìí
îïðñòóôõö÷øùú
ûüýþ
// Unicodes for Greek Alphabet
ΑΒΓΔΕΖΗΘΙΚΛΜΝ
// Unicodes for 9824 - 9830
♠♣♥♦
HtmlEncode() 响应使用 WebUtilityWrapper.HtmlEncode:
// Alphabets
$+0123456789<=>ABCDEFGHIJKLMNOPQRSTUVWXYZ^`abcdefghijklmnopqrstuvwxyz|~
// Unicode 162 to 254
¢£¤¥¦§¨©ª¬®¯°
±´µ¶¸ºÀÁÂÃÄÅÆ
ÇÈÉÊËÌÍÎÏÐÑÒÓ
ÔÕÖרÙÚÛÜÝÞßà
áâãäåæçèéêëìí
îïðñòóôõö÷øùú
ûüýþ
// Unicodes for Greek alphabet
ΑΒΓΔΕΖΗΘΙΚΛΜΝ
ΞΟΠΡΣΤΥΦΧΨΩ
// Unicodes for 9824 - 9830
♠♣♥♦
希望对您有所帮助!