【发布时间】:2010-12-02 17:35:33
【问题描述】:
我需要使用 VB.NET 将 UTF8 字符串转换为 ISO-8859-1 字符串。
有什么例子吗?
强调文本我试过拉丁函数,但没有运行。我收到不正确的字符串。
我的情况是我需要使用 API 发送短信。
现在我有了这个代码:
baseurl = "http://www.myweb.com/api/sendsms.php"
client = New WebClient
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)")
client.Encoding = System.Text.Encoding.GetEncoding("ISO-8859-1")
client.QueryString.Add("user", user)
client.QueryString.Add("password", pass)
client.QueryString.Add("alias", myAlias)
client.QueryString.Add("dest", mobile)
textoSms = Me.mmTexto.Text
textoSms = System.Web.HttpUtility.UrlEncode(textoSms)
client.QueryString.Add("message", textoSms)
data = client.OpenRead(baseurl)
reader = New StreamReader(data)
s = reader.ReadToEnd()
data.Close()
reader.Close()
但没有运行...我收到不正确的消息。例如
如果我写:mañana 返回 maa ana
如果我写 aigüa 返回 aiga
【问题讨论】:
-
无。我没有得到任何 100% 运行良好的解决方案。如果不是,我会将其标记为已解决...对不起...
-
不,我问,你试过什么?这个“问题”只是要求某人告诉你该怎么做,没有先前研究的证据。
-
我不明白你说什么......只有我知道这个问题是3年前提出的!
-
我不明白我说的话有多复杂或难以理解。
-
您是说 Jon Skeet 的回答实际上并没有回答您的问题吗?因为如果没有,这个问题就没有任何意义。 UTF8 和 ISO-8859-1 是 Unicode 文本的编码。在 .NET 中,字符串在内存中始终为 Unicode 格式,只有当您要将其转换为字节数组(通常是因为您需要将其存储在二进制文件中或通过网络发送)时,您才涉及编码它。 Jon Skeets 的回答直截了当,并且正确地解决了手头的问题。如果不是,我会以过于本地化的方式关闭它,因为显然问题是错误的。
标签: vb.net utf-8 character-encoding iso-8859-1