我正在一个波兰的网站上工作。我将mysql表和列设计为utf8_general_ci并添加
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
uery = mysql_query("select * from messages order by id desc limit 1");
$array = mysql_fetch_array($query);
$string= $array["message"];
$string = strtolower($string);
echo "<br>$string";
?>
结果类似于"prof. dr hab. in�. boles�aw pochopie�"
所以有两个问题,
1-为什么结果是未知的char会出现什么问题?我该怎么办呢?
2-utf-8和utf8_general_ci是否适用于波兰网站?
答案 0 :(得分:2)
您必须将mb_strtolower用于多字节字符串(这也适用于php的许多其他字符串函数,请参阅manual)。
或者您可以直接从数据库中请求它:
SELECT LOWER(message) FROM messages ORDER BY id desc LIMIT 1
编辑:至于编码:utf8_polish_ci
和utf8_general_ci
都可以。
答案 1 :(得分:0)
使用mb_strtolower()
,它不会将一个字节视为一个字符。
如果您的平台上没有,则需要创建它。
答案 2 :(得分:0)
使用utf8_polish_ci
让MySQL进行排序。