如何在delphi7中处理unicode数据

时间:2010-08-07 16:34:18

标签: delphi delphi-7

在我的应用程序中,我将数据从我的应用程序发送到数据库 我在我的数据库中得到一些奇怪的字符,如此

alt text http://i31.tinypic.com/2637l9f.jpg

我发送的数据是这样的

var
 w:widestring;
 u:utf8string;
begin
   w:=data //data is function to get some info(string)
   u:=utf8encode(w);
   sendfn(u);
end;

我在我的php代码中使用utf8_decode(我的获取数据),然后添加到我的数据库中。

我的数据库和表格排序是utf8_general_ci

任何人都可以在这个问题上帮助我

2 个答案:

答案 0 :(得分:0)

这是一个有根据的猜测,但Data函数是否返回UTF-8字符串而不是WideString?我认为错误可能出在您正在调用的Data函数中,它会以错误的字符串格式返回数据。

答案 1 :(得分:0)

php函数utf8_decode将字符从utf-8转换为ISO-8859-1。如果您的数据所使用的路径(您使用的浏览器或用于将数据发送到Web服务器的任何组件(http请求,您的php安装,您的网页和数据库连接)从您的delphi应用程序到您网页后面的数据库是能够支持并配置为使用utf-8数据而不需要utf8_decode函数,您只需按照它的方式插入数据。

如果你还没有配置php来使用UTF-8,请注意它很难并且永远不会100%工作(对我来说至少它从未这样做过),所以也许对你来说更好使用您的语言环境编码中的数据。