1

嗨,我有一些文本框,用户可以输入诸如名字、姓氏等信息。我需要将文本框的文本转换为十六进制,然后将十六进制转换为字节并通过 rs232 发送到设备。

我知道通过 rs232 发送部分,我也知道如何将文本转换为字节。

我的问题是,现在,我应该在文本框中使用波斯语字符。这意味着文本框中的名称文本例如像这样“حسین”。

我该如何解决我的问题?

4

2 回答 2

2

如果我理解正确,您可以尝试类似的方法

  byte[] yourStrBytes = Encoding.GetEncoding("your encoding").GetBytes("your str");
  string hexStr = BitConverter.ToString(yourStrBytes).Replace("-", "");
  byte[] hexStrBytes=Encoding.UTF8.GetBytes(hexStr);
于 2013-08-02T05:11:11.330 回答
0

据我所知,如果您想将波斯语或阿拉伯语文本转换为连续使用的 unicode,以便通过串行端口将它们发送到其他设备,例如这个问题,您可以使用以下代码来达到波斯语或阿拉伯语字母的 HEX 值。

 private string ConvertToUTF(string input_text)
    {
        string _out = String.Empty;
        char[] _chars = input_text.ToCharArray();
        foreach (char c in _chars)
        {
            _out += ((Int16)c).ToString("X4");
        }
        return _out;
    }

Useage:

Console.WriteLine(ConvertToUTF("سلام"));
Console.WriteLine(ConvertToUTF("مرحبا"));

提供这个输出

0633064406270645
06450631062D06280627

于 2014-01-06T07:25:39.203 回答