delphi7开发ISAPI网络服务器端程序时的UTF8问题, 内附源码 delphi7开发ISAPI服务器端程序时的UTF8问题,源码内有正确的地方和错误的地方的注释,
高手帮忙看一下问题出在那儿 源码下载地址:http://www.tjxyh.com/test_utf8.rar
高手帮忙看一下问题出在那儿 源码下载地址:http://www.tjxyh.com/test_utf8.rar
解决方案 »
- 调用FormCloseQuery异常
- 关于DLL回调主程序窗体的问题,急~~,请帮帮忙
- DELPHI 7 用ADO里的ADOQUERY做主从表,总是报错
- c的代码,那为给翻译成delphi啊
- 简单问题,怎样得到chklistbox的多个选中的值?
- 我用Tquery在三层结构的中间层,在客户端调用ClientDataset.ApplyUpdata不行?
- 关于SQL Server2000和Delphi做的数据库打包的问题
- 用过FastReport的朋友请过来,急急急!!!
- 初来的,打个招呼
- 超级问题:如何捕获dos窗口的输入输出流
- Raize Components 控件有没有谁有相应的例子啊,我想看一下这些控件的效果
- (五百里加急)delphi+DBExpress+DB2的应用程序怎么做安装程序,怎样才不用装DB2客户端。
begin//这里返回的UTF-8字符串错误
FileText:=TStringList.Create;
try
FileText.LoadFromFile('utf8test.txt');
Value:=FileText.Text;
{ //如果这里把返回串写为文件,则文件正确
FileText.Clear;
FileText.Text:=Value;
FileText.SaveToFile('utf8test_re.txt');
//}
finally
FileText.Free;
end;
end;
// 变体不会自动转码的啊,你要自己转才行的,不转成ansi直接这么赋值是会有乱码的,用Utf8ToAnsi转化后,再去掉第一个字符就正常了
Utf8ToAnsi转化后字符就成了GB2313的编码了,我的网页上的编码是UTF-8的,所以以用UTF-8编码的字符,这段时间我一直在测试,问题应该是出在WEBSNAP内部的脚本解释器上,也就是这个变体类型返回的是正确的,返回值送交脚本解释器后脚本解释器组合页面时出错了,或是说HTTPProd.pas里有地方可以处理,想跟踪进去,可没办法进行跟踪调试
UTF8Encode 试试
ASender: TObject; AComponent: TComponent; const AFileName: String;
var AFoundFile: String; var AHandled: Boolean);
begin//Include引入的UTF-8文件正确
AFoundFile:=getdllpath+AFileName;
end;procedure TPageProducerPage1.PageProducerHTMLTag(Sender: TObject;
Tag: TTag; const TagString: String; TagParams: TStrings;
var ReplaceText: String);
var FileText:TStrings;
begin//透明位取值替换正确
if TagString='test' then begin
FileText:=TStringList.Create;
try
FileText.LoadFromFile('utf8test.txt');
ReplaceText:=FileText.Text;
finally
FileText.Free;
end;
end;
end;procedure TPageProducerPage1.A_testGetValue(Sender: TObject;
var Value: Variant);
var FileText:TStrings; s:string;
begin
FileText:=TStringList.Create;
try
FileText.LoadFromFile('utf8test.txt');
Value:=FileText.Text;//这里返回的UTF-8字符串错误
FileText.Clear;//清空数据
FileText.Text:=Value;//把返回值重写入
FileText.SaveToFile('utf8testre.txt');//写入到文件正确,证明返回值Value是正确的,
//问题就出在Value这个值谁取走了,取走后再处理中那一步出的错
finally
FileText.Free;
end;