Php 网站排序问题
我正在制作一个网站,其中信息以立陶宛语存储。 它基本上由所有拉丁字母和一些独特的字母组成: Ąą、č、Ę、Ė、Į、š、Ų、ū、Ž 我正在尝试将数据库排序规则设置为utf8_general_ci或cp1257_lithuanian_ci。 不过,我更喜欢使用utf8\u general\u ci 在第页上打印立陶宛文字时,这两种排序都可以很好地工作, 但是php代码似乎不理解立陶宛字符。例如— 当我尝试将所有立陶宛字符交换为类似的拉丁字母(Ą=A,Ė=E)时 无法将这些字母与代码中描述的立陶宛字母匹配。当我试着将立陶宛文字小写时,立陶宛字母会变成两个拉丁字母 我应该试着改变什么来让它工作 编辑: 守则:Php 网站排序问题,php,html,mysql,utf-8,collation,Php,Html,Mysql,Utf 8,Collation,我正在制作一个网站,其中信息以立陶宛语存储。 它基本上由所有拉丁字母和一些独特的字母组成: Ąą、č、Ę、Ė、Į、š、Ų、ū、Ž 我正在尝试将数据库排序规则设置为utf8_general_ci或cp1257_lithuanian_ci。 不过,我更喜欢使用utf8\u general\u ci 在第页上打印立陶宛文字时,这两种排序都可以很好地工作, 但是php代码似乎不理解立陶宛字符。例如— 当我尝试将所有立陶宛字符交换为类似的拉丁字母(Ą=A,Ė=E)时 无法将这些字母与代码中描述的立陶宛字母
<?php
echo 'ĄąČčĘęĖėĮįŠšŲųŪūŽž';
?>
确保您的文件是UTF-8,没有BOM编码 您的php页面应发送一个UTF-8标题:
header("Content-Type: text/html; charset=utf-8");
确保您的文件是UTF-8,没有BOM编码 您的php页面应发送一个UTF-8标题:
header("Content-Type: text/html; charset=utf-8");
你忘了一件事。您必须通知浏览器编码如下:
<meta charset='utf-8'>
或者这个:
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
或者这个:
<?php
header("Content-Type: text/html; charset=utf-8");
?>
如果您不通知浏览器编码-浏览器将使用其配置中的默认编码,或者它将尝试自动检测。您忘记了一件事。您必须通知浏览器编码如下:
<meta charset='utf-8'>
或者这个:
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
或者这个:
<?php
header("Content-Type: text/html; charset=utf-8");
?>
如果您不通知浏览器编码-浏览器将使用其配置中的默认编码,或者它将尝试自动检测。您必须注意的一件事是PHP没有为字符串定义内部编码:字符串只是字节数组,所以要在PHP中表示文本,您始终需要两件事:
Content-Type: text/html; charset=<INSERT YOUR SOURCES ENCODING>
内容类型:text/html;字符集=
在PHP中,头必须在使用函数
header()
进行任何输出之前发送。您必须注意的一点是,PHP没有为字符串定义内部编码:字符串只是字节数组,因此,要在PHP中表示文本,您始终需要两件事:
Content-Type: text/html; charset=<INSERT YOUR SOURCES ENCODING>
内容类型:text/html;字符集=
在PHP中,必须在使用函数header()
的任何输出之前发送头。请参阅此答案:请参阅此答案: