HttpUtility.UrlDecode编码从UTF-8到ASCII

时间:2015-05-14 06:35:18

标签: c# encoding

 answers2 = HttpUtility.UrlDecode(Model.FindOne<UserResult>(ur => ur.UserID == user.UserID 
            && ur.ModuleID == 2 
            && ur.TopicID == 9 
            && ur.ActivityID == 2 
            && ur.QuestionID == 2).Results, Encoding.ASCII).Split('|');

结果字段包含在SQL数据库中以ASCII编码的德语字符。我使用批量短信发送服务,要求将特殊字符作为ASCII码发送。

它没有解码困难&#34;%7C&#34;和&#34;%20&#34;看到UTF-8和ASCII代码是相同的。如果我以UTF-8(%c3%a4)发送该字符,它可以正常工作但如果我将其更改回ASCII(%E4),则SMS会向我发回一个问号来代替该字符。

我指出的ASCII解码方案似乎没有起作用,我不确定我做错了什么。

1 个答案:

答案 0 :(得分:1)

UIImage *img = [UIImage imageWithContentsOfFile:path]; 不是ASCII。如果你想使用这样的值,你必须使用你想要使用的实际编码,例如:

%E4

生成Encoding.GetEncoding("iso-8859-2").GetString(new byte[] { 0xE4 }) ,而

ä

生成Encoding.ASCII.GetString(new byte[] { 0xE4 })

ASCII仅描述前128个字节值 - 其余是扩展 ASCII的特定编码。因此,每当您尝试使用ASCII解码大于128的任何内容时,您都会获得?

显然,这也是相反的 - 任何不属于ASCII的字符(而你的?肯定不会被编码为ä - 也称为63:)