linux下如何测试socket server端可以接受utf-8编码的数据?(用c语言开)发
各位达人,小弟有个问题请教各位,先谢了。
情况描述:
目的:写一个一个socket client端程序用于向socke server端发送信息(包括中英文),并接受回复和处理。
已完成:
1. 已完成英文的发送,并接受了server端发回的200 OK数据。
(比如函数如下:sendMyMSG(char *sendBuf,long sendLength))
2. 可以对回复信息进行处理。
3. 根据server端回复确认server接收utf-8编码的数据。
问题:
1. 如何向server端发送中文。
2. 我先查了下资料,发现有别人写好的编码转换的函数如下面的GB2312ToUTF8函数。
3. 而linux的默认编码是可以改变为utf-8的.(比如修改/etc/sysconfig/i18n)
4. 是不是我就可以在我的测试程序中将要发到函数sendMyMSG去的字符串之前调用下面的GB2312ToUTF8(或者类似的函数?×××ToUTF8.)我测试结果,还是不行。
我也查不到好的办法,不像Java可以直接将要发送的数据直接编码为utf-8,而不管你现在为何种编码。
附:
int GB2312ToUTF8(char* srcStr, char* desBuff, size_t desBuffLength)
{
assert(strlen(srcStr)>0);
size_t iLen = strlen(srcStr);
iconv_t cd;
cd = iconv_open("utf-8","gb2312");
assert(cd != 0);
iconv(cd, &srcStr, &iLen, &desBuff, &desBuffLength);
iconv_close(cd);
return desBuffLength;
}