gpt4 book ai didi

c# - 将 url 从 utf-8 编码重新编码为 iso-8859-1 编码

转载 作者:行者123 更新时间:2023-11-30 12:53:45 25 4
gpt4 key购买 nike

我有 file://带有非英语字符的链接,这些字符是 UTF-8 的 UrlEncoded。为了让这些链接在浏览器中正常工作,我必须重新编码它们。

file://development/H%C3%A5ndplukket.doc

成为

file://development/H%e5ndplukket.doc

我有以下有效的代码:

public string ReEncodeUrl(string url)
{
Encoding enc = Encoding.GetEncoding("iso-8859-1");
string[] parts = url.Split('/');
for (int i = 1; i < parts.Length; i++)
{
parts[i] = HttpUtility.UrlDecode(parts[i]); // Decode to string
parts[i] = HttpUtility.UrlEncode(parts[i], enc); // Re-encode to latin1
parts[i] = parts[i].Replace('+', ' '); // Change + to [space]
}
return string.Join("/", parts);
}

有没有更简洁的方法来做到这一点?

最佳答案

我认为这实际上很干净。它是可读的,你说它运行正常。只要实现对消费者是隐藏的,我就不会担心挤出最后的改进。

如果您过多地执行此操作(例如每个事件执行数百次),我会考虑将实现从 UrlEncode/UrlDecode 中取出并将它们彼此流式传输以通过消除对字符串拆分的需要来提高性能/加入,但无论如何测试都必须证明这一点,而且绝对不会是“干净的”:-)

关于c# - 将 url 从 utf-8 编码重新编码为 iso-8859-1 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1927127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com