2009-08-18 118 views
1

我有一个脚本,它从数据库中获取一个字符串,将其拆分为单词并将单词写入数据库。当我通过http调用脚本(使用apache web服务器)时,它完美地工作。它也可以从Windows命令行运行它。但是,当我尝试从ubuntu的命令行(shell)中运行它时,所有瑞典语字符ÅÄÖ在数据库中被替换为AAO。很奇怪。来自命令行的瑞典语字符的utf8问题

什么是apache告诉php,我需要从命令行运行时自己告诉它?

回答

-1

可能ubuntu不接受终端那种东西。尝试安装一个插件左右?

这不是真的很奇怪,因为几乎所有的命令行的东西都有一些特殊字符的问题。你确定你真的需要吗?有没有其他的方式来写它?我不知道因为我不是瑞典人。

Apache和PHP只是有那种字符的支持,,,还有什么可说的别的

+0

我不输入任何命令行,我只是从那里执行脚本。我希望它能够从命令行工作的原因是我想从cron运行它。 – Martin 2009-08-18 10:28:42

+0

执行和输入给你(几乎)相同的输出。 – 2009-08-18 10:35:06

2

MySQL有various parameters处理客户端编码。将客户端字符集设置为UTF-8或数据库的字符集应该可以解决您的问题。

+0

做到了,两者都是utf8,但它没有帮助。 – Martin 2009-08-18 11:50:15

2

您可以将phpinfo()放在脚本的顶部,以打印所有环境变量,配置设置等。比较在命令行运行时与在apache下运行时的输出。

+0

伟大的提示!有很多不同之处。例如,LANG在命令行上设置为en_US.UTF-8。从apache它有这些: _SERVER [“HTTP_ACCEPT_LANGUAGE”] \t en-US,en; q = 0.8 _SERVER [“HTTP_ACCEPT_CHARSET”] \t ISO-8859-1,utf-8; q = 0.7,*; q = 0.3 – Martin 2009-08-18 11:55:59

0

通常会有不同的php.ini文件在通过命令行运行时使用。检查一下你是否有一个,有什么区别。