我有一个字段 $name (varchar(128)),其中有一个值“Pølse Mand”。
现在我希望它在值为“Pølse Mand”时打印一些特殊的东西
<?php
if ($name=="Pølse Mand") { echo "123";};
?>
但由于某些原因,这不起作用。我还有另一个名为“文本框”的值,当我对它做同样的事情时它工作正常,所以一定是“ø”把事情搞砸了。
我假设我在 php 文件中的“ø”与值中的 ø 有某种不同,即使我已经尝试在 phpmyadmin 中一个字母一个字母地直接复制它。
MySQL连接排序规则是utf8_unicode_ci,表中的排序规则是latin1_swedish_ci。我试过:<meta http-equiv="Content-Type" content="text/html; charset=utf8_unicode_ci"/>
和瑞典的,但它就是行不通。
最佳答案
您使用的是 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"/>
尝试两种选择,找出最适合您的。
关于Php 页面无法从 mysql 值中识别 "ø",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6257668/