我在项目中面临一个小问题当我尝试 将一些德语单词 存储到 MYSQL数据库中时。如果 德语单词包含变音符号 ,即字符ä,ö,ß,ü等,它们不会存储,因为它们 .... ?
我想 将它们 存储到数据库中。为此,我尝试更改COLLATION to UTF8-general-ci, and others in the list using PHP myAdmin
。但是他们都没有为我工作。
我是以正确的方式还是我必须做其他事情。
请提供一些帮助。
先谢谢......
答案 0 :(得分:3)
您必须选择正确的传输编码。致电
SET NAMES utf8
在插入数据之前,确保在插入之前德语单词是utf8编码的。
答案 1 :(得分:1)
//在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;
}
答案 2 :(得分:1)
在将文本保存到数据库之前,请先尝试使用utf8_encode($string)将文本编码为UTF8。为了使字符能够以某种语言正确显示,您必须(1)将文本设置为正确的字符集,然后(2)将数据库设置为正确的字符集(就像您所做的那样)。
另外,例如,文件display.php
将输出德语文本,您可以在任何编辑器(EmEditor?)中打开文件,然后“另存为”,选择正确的编码方案。之后,显示文件在输出文本时将处理字符集。
答案 3 :(得分:0)
连接到数据库后,请使用以下代码:
SET NAMES XXX
将XXX替换为您的工作字符集。