问题描述
|
我有一个字段$ name(varchar(128)),其中有一个值“PølseMand \”。
现在,我希望它在值是“PølseMand”时打印一些特殊的东西
<?php
if ($name==\"Pølse Mand\") { echo \"123\";};
?>
但是由于某种原因,这是行不通的。我还有一个名为\“ Text box \”的值,当我执行此操作时,它可以很好地工作,因此必须是\“ø\”弄乱了内容。
我假设我的php文件中的\“ø\”与ø值在某种程度上有所不同,即使我已经尝试在phpmyadmin中直接逐字母复制它。
MySQL连接排序规则是utf8_unicode_ci,表中的排序规则是latin1_swedish_ci。我试过了:<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf8_unicode_ci\"/>
和瑞典语的one1ѭ,但是just行。
解决方法
您正在使用MySql还是MySqli?
对于MySQL,请在请求前使用以下代码:
mysql_set_charset ( \'latin7\' );
要么:
mysql_set_charset ( \'utf8\' );
对于MySQLi:
$mysqli -> set_charset ( \'latin7\' ); //Change $mysqli to your variable name
要么:
$mysqli -> set_charset ( \'utf8\' );
至于<meta>
标签,请使用:
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
要么:
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-13\"/>
尝试两个选项,然后找出最适合您的选项。
, 您在客户端使用的是UTF-8,因此必须告知MySQL您使用的是UTF-8。这是通过MySQL命令SET NAMES \'utf8 \'完成的,该命令必须在打开连接时作为第一个查询发送。根据您的安装和在PHP脚本中使用的MySQL客户端库的不同,可以在每次连接时自动完成此操作。
$mysqli = new mysqli(\"localhost\",\"user\",\"password\",\"db\");
$mysqli->set_charset(\"utf8\");
//
$mysql_set_charset(\"utf8\");
, 尝试将表编码更改为utf8,并在mysql连接后运行查询:query11ѭ