使用URL编码时的法语字符处理

7

我需要通过webservice传递特殊字符。我使用以下代码:

HttpUtility.UrlEncode("法语字符")

但是,如果字符串包含双引号,则编码无法正常工作。

例如:HttpUtility.UrlEncode("é")

其编码正确,但无法正确解码。

......提前感谢您的帮助......


你能提供更多细节吗?你是如何尝试解码的?它在另一个应用程序中吗?为什么你的问题标记为“web-services”?如果你正在尝试调用SOAP Web服务,你应该简单地生成一个客户端代理,并直接调用该代理上对应的方法。你不应该手动编码任何东西,这应该自动完成。 - Darin Dimitrov
我得到了下面提到的答案。谢谢。 - Shebin
4个回答

7

Url编码法对于法语字符é的结果是%E9

当我们使用

HttpUtility.UrlEncode("é")

时,输出结果为%c3%a.

HttpUtility.UrlEncode("é", System.Text.Encoding.GetEncoding("ISO-8859-1")

会得到正确的编码输出,即%E9


2

我不明白您的问题所在。这段代码:

Console.WriteLine(System.Web.HttpUtility.UrlEncode("something enclosed \"in quotes\""));

输出以下结果:

something+enclosed+%22in+quotes%22

正如应该的那样,没有\字符。那么问题到底是什么呢?

但是我在编码法语字符(如é)方面遇到了一些问题。它可以编码,但无法正确解码。 - Shebin
抱歉没有正确发布问题。 - Shebin

0
String output = new String(input.getBytes(),"UTF-8");

-2

编码没问题,试试这个:

HttpUtility.UrlDecode(HttpUtility.UrlEncode("somecodes\""))


3
那会有什么意义呢?这就像是说 x = x + 1 - 1 - qJake
@SpikeX,这只是为了让您看到,当您将其解码回来时,它会被正确解码。这不是编码示例。 - Oleg Grishko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接