Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用C+编码希伯来语数据+;_C++_Sockets_Encoding_Hebrew - Fatal编程技术网

C++ 用C+编码希伯来语数据+;

C++ 用C+编码希伯来语数据+;,c++,sockets,encoding,hebrew,C++,Sockets,Encoding,Hebrew,我从第三方接收套接字上的数据(文本),需要用希伯来语编码。第三方表示: 对于希伯来字母编码,每当您发现ASCII码大于127时,您需要减去128并添加05D0,以获得希伯来字母的Unicode值(对于希伯来字段中的每个字符) 我的问题是,如何逐字符读取数据?从第三方接收的文本中可能包含多字节字符。我试着用下面的代码读取数据并得到ASCII码 Recv(iSocket,AppMsg,&iLen,0) int a = 0; for(int i=0;i<strlen(AppMsg);i+

我从第三方接收套接字上的数据(文本),需要用希伯来语编码。第三方表示:

对于希伯来字母编码,每当您发现ASCII码大于127时,您需要减去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);
}
Recv(iSocket、AppMsg和iLen,0)
int a=0;
for(int i=0;istitleofancnt[i];
Log.info(“%s |%s |%d |字符的Ascii值为[%d]”,basename(_文件,_函数,_行,a);
}
问题是,我从逐字符读取中得到了错误的ASCII值。这是错误的方法。我应该如何读取数据以便能够获得希伯来文数据

从第三方接收的文本中可能包含多字节字符

如果字符是多字节的,那么它们就已经是UTF-8了,您不需要这种转换

在任何情况下,客户给出的描述都不允许同时使用任何多字节编码

我试着用下面的代码读取数据并得到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);
}
[将
char
转换为
int
]

char
可能(而且通常是)
有符号的
,因此您根本看不到大于127的值。该转换可能会产生负值


改为使用转换来
无符号字符。

告诉您的客户您需要UTF-8,而不是一些自定义编码。可能的错误。for循环应写成
for(int i=0;i