我很熟悉但很难在这里解决问题。是的,我在论坛上搜索,但这些线程已经足够老,所以我决定创建新的帖子。 所以我使用WP构建了一个网站,并在一个页面中包含了html FORM。当用户填写表单(用他/她的语言)时,字段的值将进入MySQL数据库表reg_form。
一切正常,值保存,但某些字符(特定于该语言)无法识别。我尝试了很多不同的方法来解决这个问题,但没有什么可以帮助。
最奇怪的是,如果你看一下WordPress表,你会发现那些特定的字符是可识别的,但不是我创建的reg_form表中的。
我试图解决这个问题,最后我决定采取某种荒谬的方式。我创建了新数据库,新表,安装了新wordpress,创建了新表单等。
这就是我在做的事情:
我首先使用了这个建议: http://tympanus.net/codrops/2009/08/31/solving-php-mysql-utf-8-issues/
是的,我的文件是使用UTF8编码保存的(没有BOM)。是的,元标记没问题。是的,FORM使用accept-charset ='UTF-8'。是的,数据库中的所有表都使用UTF8。是的,服务器,数据库和表格排序是相同的“utf8_general_ci”。
然后我尝试在我的代码中插入:
$conn = mysql_connect($server, $username, $password);
mysql_set_charset("UTF8", $conn);
然后我尝试了这个建议 链接到这里: akrabat.com/php/utf8-php-and-mysql /
然后我尝试使用以下链接在.htaccess文件中设置Apache的AddDefaultCharset: httpd.apache.org/docs/2.0/mod/core.html#AddDefaultCharset
但......问题仍然存在。我无法正确看到那些特定的角色 - 只有奇怪的象形文字。
答案 0 :(得分:0)
您遇到的问题与数据库字符编码设置和Wordpress中的一些具体细节有关。
虽然Wordpress有一般字符编码设置,通常也会关注数据库表,但它并不关心这些表所在的数据库的默认字符编码设置。
因此,当您的插件/代码添加自己的数据库表时,您还需要注意编码设置 - 因为默认情况下它们将是您创建表的数据库默认值,这很可能是latin-1这对你的语言效果不佳。
设置数据库的默认字符集(如果数据库名称不同,请将“wpdb”替换为
):ALTER DATABASE wpdb CHARACTER SET utf8 COLLATE utf8_general_ci;
更改现有表格的字符集*“reg_form”*:
ALTER TABLE reg_form CONVERT TO CHARACTER SET charset_name;
注意:首先备份您的数据库。
答案 1 :(得分:0)
HOLLY SHIT !!最后! :)))))))))
问题在于我使用的是mysqli_查询。现在我尝试更改为mysql_(注意更改!)查询,它工作了!!两个星期的haaaaard工作和研究...... P !,
现在谁能正确解释这个现象的原因? :))