怎么把gbk的字符串转换成utf8格式的? 我有一string,是gbk格式,想把他转换成utf8格式还有个问题,有没有什么函数或办法,可以判断某一string是什么格式,或者告诉我,是不是gbk或utf8,或者都不是 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 gbk不是一个标准的编码,只是win 9x时的一种过渡型,现在已经是gb18030了。转换都是通过 非unicode -> unicode -> utf-8判断字符串是什么编码的一般都基于统计,所以也很难说判断的怎么样。比如著名的在记事本里写“联通”,再打开就乱码的“bug”,就是notepad认为它是两个utf-8的字符(刚好这两个gb2312/gb18030的字符也符合utf-8的编码) 先强制类型转换成WideString,然后调用UTF8Encode var strGBK: AnsiString; strUTF8: AnsiString; strUTF16: WideString;begin StrGBK := #$B2#$E2#$CA#$D4;//'测试' SetLength(strUTF16, Length(strGBK)); SetLength(strUTF16,MultiByteToWideChar(936,0,PAnsiChar(strGBK), Length(strGBK),PWideChar(strUTF16),Length(strUTF16))); strUTF8 := UTF8Encode(strUTF16)end; 求助!!!如何使用delphi调用outlook发送邮件 个人的专有技术在和新公司签定劳动合同时是否应该提前申明或签定一个协议? 续上次MDI噶问题~ 有关DLL调用主应用程序变量的问题 怎样通过程序执行*.sql文件中所有sql? 请问如何获得当前系统的具体类型? 向高手请教:请问怎样在不打开数据库的前提下,得到数据库表明及表的字段名? 那位大哥給個程序我學習學習?(有關進銷存的)共300分還可再加. 关于“封面窗口” Web ActiveX 不能接受UDP数据包吗? 期待一份长期稳定的工作... 清空系统临时文件夹,和ie缓存文件夹的自定义函数或者代码
判断字符串是什么编码的一般都基于统计,所以也很难说判断的怎么样。比如著名的在记事本里写“联通”,再打开就乱码的“bug”,就是notepad认为它是两个utf-8的字符(刚好这两个gb2312/gb18030的字符也符合utf-8的编码)
strGBK: AnsiString;
strUTF8: AnsiString;
strUTF16: WideString;
begin
StrGBK := #$B2#$E2#$CA#$D4;//'测试'
SetLength(strUTF16, Length(strGBK));
SetLength(strUTF16,MultiByteToWideChar(936,0,PAnsiChar(strGBK), Length(strGBK),PWideChar(strUTF16),Length(strUTF16)));
strUTF8 := UTF8Encode(strUTF16)
end;