在C 中编码希伯来数据

Encoding Hebrew Data in C++

本文关键字:数据 编码      更新时间:2023-10-16

我正在从需要在希伯来语中编码的第三方的套接字上接收数据(文本)。第三方说:

对于希伯来字母编码,每当您找到大于127的ASCII代码时,您都需要减去128并添加#05D0以获取希伯来语字母的Unicode值(对于希伯来语字段中的每个字符)。

)。

我的问题是,如何按字符读取数据字符?从第三方收到的文本中可能涉及多字节字符。我尝试读取数据并使用以下内容获取ASCII代码。

Recv(iSocket,AppMsg,&iLen,0)
int a = 0;
for(int i=0;i<strlen(AppMsg);i++)
{
    a = (int)pTitlOfAnncmnt->sTitleOfAnncmnt[i];
    Log.info("%s|%s|%d|Ascii Value Of Char Is [%d] ",basename(__FILE__),__func__,__LINE__,a);
}

问题是,我从字符读取字符中获得了错误的ASCII值。这是错误的方法。我应该如何读取数据,以便能够获得希伯来语数据?

从第三方收到的文本中可能涉及多字节字符。

如果字符是多键,它们已经是UTF-8,您不需要此转换。

无论如何,您的客户提供的描述排除了同时使用的任何多重编码。

我尝试读取数据并获取以下内容的ASCII代码。

[char铸造为int]

char可能是(通常是) signed,因此您看不到大于127的值。该铸件可能会产生负值。

而是将铸件代替unsigned char