波斯语文本框为十六进制到字节

时间:2013-08-02 04:18:57

标签: c# hex bytearray persian

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

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

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

如何解决我的问题?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,你可以尝试类似的东西

  byte[] yourStrBytes = Encoding.GetEncoding("your encoding").GetBytes("your str");
  string hexStr = BitConverter.ToString(yourStrBytes).Replace("-", "");
  byte[] hexStrBytes=Encoding.UTF8.GetBytes(hexStr);

答案 1 :(得分:0)

据我所知,如果您想将波斯语或阿拉伯语文本转换为连续的unicode,以便通过This问题等串口将其发送到其他设备,您可以使用以下代码来达到其中的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