一种使用ASCII编码Unicode字符的方法

时间:2013-02-11 18:36:26

标签: .net vb.net sockets encoding character-encoding

我有这段代码:

' Connects to the server
Dim _tcpClient As New System.Net.Sockets._tcpClient
_tcpClient.Client.Connect(server, port)
' Open network stream
Dim _headerToSend As String = "POST evpost HTTP/1.0"... ' CityName = Čelpěkéy
Dim _networkStream As NetworkStream = _tcpClient.GetStream
Dim bytesToSend As Byte() = Encoding.ASCII.GetBytes(_headerToSend)
' Send the text to tcp server
_networkStream.Write(bytesToSend, 0, bytesToSend.Length)

我正在尝试保存值“Čelpěkéy”介绍数据库,实际上是保存但是“Celpekéy”。这是因为我使用Encoding.ASCII并且ASCII不支持这些字符。

考虑:

更新

你知道任何允许我仍然使用ASCII编码保存Unicode字符的技巧吗?
要么
您是否认为使用ASCII编码无法做到这一点?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

看起来你想要Encoding.Unicode.GetBytes或UTF8版本,而不是ASCII版本。

答案 1 :(得分:0)

Public Function DECODE(ByVal x As String) As String
        If x IsNot Nothing Then
            Dim b As Byte() = Encoding.GetEncoding(1250).GetBytes(x)
            Return Encoding.ASCII.GetString(b)
        Else
            Return x
        End If
End Function

1250是东欧(罗马尼亚)的代码。因此'Ceauşescu'将翻译'Ceausescu'

使用特定于您所在国家/地区的代码。