a:array of AnsiChar;//a的内容是“测试一下” 发送到其它客户端;
简体中文的客户端接收到这个a之后,可以很简单的转换为字符串
繁体中文的客户端接收到这个a之后,用同样的代码转换后是乱码
如何是简体还是繁体,调试时可以查看到这个数组里的内容是一样的。请高手看看如何将这个字符数组转换为一个能正常显示的字符串?
简体中文的客户端接收到这个a之后,可以很简单的转换为字符串
繁体中文的客户端接收到这个a之后,用同样的代码转换后是乱码
如何是简体还是繁体,调试时可以查看到这个数组里的内容是一样的。请高手看看如何将这个字符数组转换为一个能正常显示的字符串?
2.在简体下编译,转换的时候带上简体的代码页编号(CodePage,936),转换成Unicode.
widestring兼容UniCodeString
function StringToWideString(const S: AnsiString; CodePage: Word): WideString;
var
InputLength, OutputLength: Integer;
begin
InputLength := Length(S);
OutputLength := MultiByteToWideChar(CodePage, 0, PAnsiChar(S), InputLength, nil, 0);
SetLength(Result, OutputLength);
MultiByteToWideChar(CodePage, 0, PAnsiChar(S), InputLength, PWideChar(Result), OutputLength);
end;
但是还有疑问,就是如果一个字符串中既有简体又有繁体,甚至还包含了一些日文等等的混合字符,这样的情况又该如何处理?