【问题标题】:utf8 problem with swedish characters from command line命令行中瑞典字符的utf8问题
【发布时间】:2009-08-18 10:18:46
【问题描述】:

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

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

【问题讨论】:

    标签: php mysql apache encoding utf-8


    【解决方案1】:

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

    【讨论】:

    • 搞定了,都是utf8,但是没用。
    【解决方案2】:

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

    【讨论】:

    • 很棒的提示!有很多不同之处。例如 LANG 在命令行中设置为 en_US.UTF-8。从 apache 它有这些: _SERVER["HTTP_ACCEPT_LANGUAGE"] en-US,en;q=0.8 _SERVER["HTTP_ACCEPT_CHARSET"] ISO-8859-1,utf-8;q=0.7,*;q=0.3
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      这并不奇怪,因为几乎所有命令行的东西都有一些特殊字符的问题。你确定你真的需要那个吗?没有别的写法吗?我不知道,因为我不是瑞典人。

      Apache 和 PHP 只支持这种字符,,, 没什么好说的了

      【讨论】:

      • 我没有从命令行输入任何内容,我只是从那里执行脚本。我希望它从命令行工作的原因是我想从 cron 运行它。
      • 执行和输入给你(几乎)相同的输出。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2011-07-28
      • 1970-01-01
      • 2012-08-13
      • 2015-08-22
      • 2016-05-08
      • 2011-07-12
      相关资源
      最近更新 更多