嗨,我有一些文本框,用户可以输入诸如名字、姓氏等信息。我需要将文本框的文本转换为十六进制,然后将十六进制转换为字节并通过 rs232 发送到设备。
我知道通过 rs232 发送部分,我也知道如何将文本转换为字节。
我的问题是,现在,我应该在文本框中使用波斯语字符。这意味着文本框中的名称文本例如像这样“حسین”。
我该如何解决我的问题?
如果我理解正确,您可以尝试类似的方法
byte[] yourStrBytes = Encoding.GetEncoding("your encoding").GetBytes("your str");
string hexStr = BitConverter.ToString(yourStrBytes).Replace("-", "");
byte[] hexStrBytes=Encoding.UTF8.GetBytes(hexStr);
据我所知,如果您想将波斯语或阿拉伯语文本转换为连续使用的 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