首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从UTF8编码替换字符串中的字符以适合浏览器C#

问从UTF8编码替换字符串中的字符以适合浏览器C#
EN

Stack Overflow用户
提问于 2011-09-21 17:52:35
回答 2查看 2.1K关注 0票数 0

我需要替换浏览器友好的字符,ä,ö。例如,ä应变为%E4。

我尝试过weirdString = Uri.EscapeUriString(weirdString);但它不能将akaäöo转换为正确的符号。帮帮忙好吗?

编辑:尝试这样做:

代码语言:javascript
复制
ASCIIEncoding ascii = new ASCIIEncoding(); 
byte[] asciicharacters = Encoding.UTF8.GetBytes("vägen");
byte[] asciiArray = Encoding.Convert(Encoding.UTF8, Encoding.ASCII, asciicharacters);
string finalString = ascii.GetString(asciiArray);
string fixedAddrString = HttpUtility.HtmlEncode(finalString);
EN

回答 2

Stack Overflow用户

发布于 2011-09-21 17:58:07

如果您需要在页面上显示字符,而不是URL的一部分,则应使用Server.HtmlEncode。

代码语言:javascript
复制
var encodedString = Server.HtmlEncode(myString); 

HTML编码可确保文本在浏览器中正确显示,而不会被浏览器解释为

。例如,如果文本字符串包含小于号(<)或大于号(>),浏览器会将这些字符解释为HTML标签的左方括号或右方括号。对字符进行HTML编码后,它们将转换为字符串<和>,这会使浏览器正确地显示小于号和大于号。

更新:

由于您使用的是UTF-8,因此这些字符将转义为UTF-8,而不是ASCII。

在尝试转义字符串之前,需要使用Encoding类将字符串从UTF8转换为ASCII码。也就是说,如果您确实希望出现ASCII值。

参见here。

票数 1
EN

Stack Overflow用户

发布于 2011-09-21 17:56:28

试试HttpUtility.HtmlDecode。如果这也不起作用,你可以为这个字符做一个简单的string.Replace。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7497844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档