如何获取Encoding.GetEncoding(“iso-8859-1”)十六进制代码?

如何获取Encoding.GetEncoding(“iso-8859-1”)十六进制代码?,encoding,character-encoding,sms,sms-gateway,Encoding,Character Encoding,Sms,Sms Gateway,我需要通过HTTP Post发送一些特殊字符(如蔡ò)的短信 因此,使用我的代码,我尝试转换ISO-8859-1中的字符串 基本上,如果我的字符串在ISO-8859-1中转换,并在其上调用方法Uri.EscapeDataString,则应使用F2十六进制代码来代替ò。但是我得到了%C3%A0,这是UTF8编码的十六进制代码 Encoding iso = Encoding.etEncoding("ISO-8859-1"); string Strin

我需要通过HTTP Post发送一些特殊字符(如蔡ò)的短信

因此,使用我的代码,我尝试转换ISO-8859-1中的字符串

基本上,如果我的字符串在ISO-8859-1中转换,并在其上调用方法Uri.EscapeDataString,则应使用F2十六进制代码来代替ò。但是我得到了%C3%A0,这是UTF8编码的十六进制代码

     Encoding iso = Encoding.etEncoding("ISO-8859-1");   

                string StringBody = iso.GetString(iso.GetBytes(Body));

   UrlParameter += "&data=" + Uri.EscapeDataString(StringBody);

首先,编码一个字符串并将其解码回来,充其量只是一个毫无意义的往返过程,最坏的情况下会导致数据丢失

Uri.EscapeDataString始终编码为UTF-8。任何服务器都应该支持这一点

您可以尝试接受编码参数的:

Encoding iso = Encoding.getEncoding("ISO-8859-1");  
UrlParameter += "&data=" + HttpUtility.UrlEncode(Body, iso);

我相信文本API应该支持Unicode。。。在你的终端正确地编码短信是很重要的。。。但是,文本消息API也应支持此功能。。。支持UNICODE消息传递的API将完成此任务

下面是我在PHP中所做的。。。我不太喜欢为其他语言编写代码,对此我很抱歉

if ($cmd['method'] == 'POST') {
$opts['http']['method'] = 'POST';
$opts['http']['header'] .= "\r\nContent-type: application/x-www-form-urlencoded"; 
$opts['http']['content'] = $post_data;
}

$context = stream_context_create($opts);

我使用了提供Unicode支持并允许我发送中文、日文、阿拉伯文和其他语言的消息。

我不确定您到底想在这里做什么,但iso.GetString解码和iso.GetBytes编码相互抵消。谢谢您的帮助。你们知道吗,我怎么能接受特殊字符ISO-8859-1十六进制代码?我可能不能,但若你们用例子来补充你们的问题,你们会得到更好的答案,我假设你们的主体是一个普通的C Unicode字符串,UrlParameter应该是什么样子。