我正在尝试将阿拉伯文本编码为十六进制,以便将其发送到 POS 打印机。
byte[] bytes1 = Encoding.UTF8.GetBytes("عمر");
Array.Reverse(bytes1);
var hexString = BitConverter.ToString(bytes1);
hexString = hexString.Replace("-", "");
MyPrinter.PrintAr(hexString);
但我仍然得到我的打印机理解的错误十六进制格式。我需要的格式应该是这样的:
\uFEA3
我也试过下面的代码:
byte[] bytes1 = Encoding.Unicode.GetBytes("عمر");
Array.Reverse(bytes1);
int counter = 0;
var value="" ;
string var2 = "";
foreach (byte letter in bytes1)
{
// Get the integral value of the character.
// Convert the decimal value to a hexadecimal value in string form.
if (counter == 0)
{
counter = 1;
value = letter.ToString() ;
}
else
{
value += letter.ToString();
var2 = Convert.ToUInt16(value).ToString();
insert = "\\u" + var2;
counter = 0;
}
hexOutput += insert;
}
但仍然得到具有数字格式的十六进制,例如:
\u0669
请您帮忙为我的打印机获取正确的十六进制格式。