Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 替换UTF8编码中的字符串中的字符以适合浏览器C#_String_Browser_Utf 8 - Fatal编程技术网

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

String 替换UTF8编码中的字符串中的字符以适合浏览器C#,string,browser,utf-8,String,Browser,Utf 8,我需要将字符å、ä、ö替换为浏览器友好的字符。例如,ä应该变成%E4 我尝试了weirdString=Uri.EscapeUriString(weirdString); 但它不会将åäö转换为正确的符号。请帮忙 编辑:尝试了以下操作: ASCIIEncoding ascii = new ASCIIEncoding(); byte[] asciicharacters = Encoding.UTF8.GetBytes("vägen"); byte[] asciiArray = Encoding.C

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

我尝试了weirdString=Uri.EscapeUriString(weirdString); 但它不会将åäö转换为正确的符号。请帮忙

编辑:尝试了以下操作:

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);

请尝试HttpUtility.HtmlDecode。
如果这也行得通,你可以做一个简单的字符串。替换这个字符。

如果你需要字符显示在页面上而不是URL的一部分,你应该使用

HTML编码确保文本在浏览器中正确显示,并且不会被浏览器解释为HTML。例如,如果文本字符串包含小于号(),浏览器会将这些字符解释为HTML标记的开始或结束括号。当字符采用HTML编码时,它们将转换为字符串<和>,这将导致浏览器正确显示小于号和大于号


更新:

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

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


请参阅。

“å”是一个非常友好的浏览器角色。你想做什么/你遇到了什么问题?例如,我需要“dadelvägen”变成“dadelv%E4gen”。否则我会得到错误的HTML页面。你是说在URL中还是在HTML中?你得到的是什么而不是预期的值?使用HtmlEncode我得到的是“vä;gen”。我想他是指HtmlEncode,我试过了,但是“v#gen”的结果字符串变成了“vä;gen”,应该是“v%E4gen”。这是我在HtmlEncode中使用的。如何才能获得正确的字符串?它是用来在URL中使用的。@mdc-编码之前,您需要将字符串转换为ASCII字符串。如果无法将其正确转换为ASCII,这里有什么问题:(请参阅操作,将代码粘贴在那里)。最后一个字符串只变成“v?gen”而不是“v%E4gen”。@mdc-你检查过编码的结果吗?是的,出于某种原因,我得到了一个“ä”的问号,可能是做错了。如果你能用这封信(“ä”)试几分钟,看看能不能做成“%E4”,我将不胜感激。它现在快把我逼疯了。
var encodedString = Server.HtmlEncode(myString);