将德语单词存储到 MySql 数据库中的问题...


Problem with storing german words into the MySql DB....?

当我尝试将一些德语单词存储MYSQL 数据库中时,我的项目中遇到了一个小问题。当这个德语单词包含变音符号时,即字符 ä、ö、ß、ü 等,它们不会按原样存储.....?

我想将它们按原样存储到 Database.To 中,所以我试图更改COLLATION to UTF8-general-ci, and others in the list using PHP myAdmin.但他们都不适合我。

的方式是否正确,或者我必须做其他事情。

请提供一些帮助。

提前致谢...

您还必须选择正确的传输编码。叫

SET NAMES utf8

插入数据之前,请确保德语单词在插入之前采用 UTF8 编码。

尝试先使用 utf8_encode($string) 将文本编码为 UTF8,然后再将其保存到数据库中。为了使字符以某种语言正确显示,您必须 (1) 将文本设置为正确的字符集,然后 (2) 将数据库设置为正确的字符集(就像您所做的那样)。

此外,例如,文件display.php将输出德语文本,您可以在任何编辑器(EmEditor?)中打开文件,然后"另存为",选择正确的编码方案。之后,显示文件在输出文本时将处理字符集。

年前,

我遇到了同样的问题。我已经通过为 mysql 隐式设置 NAMES 选项解决了它。在我的代码中,它看起来像这样:

AbstractMapper 类内部

public function __construct($modelClass, $dbTable) {
$this->setDbTable($dbTable);
$stmt = new Zend_Db_Statement_Pdo($this->getDbTable()->getAdapter(), 'set names utf8');
$stmt->execute();
$this->_model_class = $modelClass;
}

连接到数据库后,使用以下代码:

SET NAMES XXX

将 XXX 替换为您的工作字符集。