相关疑难解决方法(0)

UTF-8一路走来

我正在设置一个新服务器,并希望在我的Web应用程序中完全支持UTF-8.我过去曾在现有的服务器上尝试过此操作,但最终似乎不得不回归ISO-8859-1.

我在哪里需要设置编码/字符集?我知道我需要配置Apache,MySQL和PHP来执行此操作 - 是否有一些我可以遵循的标准清单,或者可能是在出现不匹配的地方进行故障排除?

这适用于运行MySQL 5,PHP,5和Apache 2的新Linux服务器.

php mysql linux apache utf-8

1146
推荐指数
13
解决办法
15万
查看次数

浏览器显示?代替

我有一个php文件,其中包含以下文本:

<div class="small_italic">This is what you´ll use</div>
Run Code Online (Sandbox Code Playgroud)

在一台服务器上,它显示为:

This is what you´ll use
Run Code Online (Sandbox Code Playgroud)

另一方面,如:

This is what you?ll use
Run Code Online (Sandbox Code Playgroud)

为什么会有差异,我该怎么做才能使它显得正确(作为撇号)?


所有人的注意事项(供将来参考)

我实现了Gordon/Gumbo的建议,除了我在服务器级别而不是应用程序级别实现它.请注意,(a)我不得不重新启动apache服务器,更重要的是,(b)我必须用正确编码中的校正数据替换现有的"坏数据".

/etc/php.ini中

default_charset ="iso-8859-1"

html php browser character-encoding special-characters

9
推荐指数
2
解决办法
1341
查看次数

PHP PDO,连接持久时无法设置名称?

这是我的PDO课程的一部分.我需要使用utf-8希伯来语,但当我设置ATTR_PERSISTENTtrue输出文本将显示??????如果我切换ATTR_PERSISTENTfalse输出将是正确的.

public function __construct() {
    // Set DSN
    $dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname;
    // Set options
    $options = array(
        PDO::MYSQL_ATTR_INIT_COMMAND =>  'SET NAMES utf8',
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_PERSISTENT => true
    );
    // Create a new PDO instanace
    try {
        $this->dbh = new PDO($dsn, $this->user, $this->pass, $options);
    }
    // Catch any errors
    catch (PDOException $e) {
        $this->error = $e->getMessage();
    }
}
Run Code Online (Sandbox Code Playgroud)

之间是否有任何冲突:

PDO::MYSQL_ATTR_INIT_COMMAND =>  'SET …
Run Code Online (Sandbox Code Playgroud)

php database pdo utf-8 character-encoding

5
推荐指数
1
解决办法
145
查看次数