每次我创建一个新项目时,我最终会遇到麻烦,因为我忘了用UTF-8创建数据库排序规则,或者有些字符滑落到我看不到é/à/ ..但是也是双重...或者三重奏...似乎非常讨厌。我通常使用 mysqli_real_escape_string 来确保他将字符写下来,当我打印它们时,我使用 htlmentities 。但是这对所有角色都不起作用,并且不能用于双重...或者三倍......
在设置项目时是否应该记住一般规则/指南,所以我对这些特殊字符没有麻烦?
答案 0 :(得分:1)
在设置项目时是否应该记住一般规则/指南?
不确定。
始终设置数据库连接字符集以匹配HTML页面实际字符集。
说,你的网页是在utf-8,然后发出
mysqli_set_charset($conn,'utf8');
连接后您的网页
在Windows-1251中,然后制作
mysqli_set_charset($conn,'cp1252');
等等
也始终使用mysqli_real_escape_string
格式化字符串文字,动态添加到查询中,
在将用户输入打印回HTML页面时使用htmlspecialchars()
<强>更新强>
此外,您还需要使用支持所有必需字符的字符集设置表格(UTF-8是首选默认值)。
CREATE TABLE `table` (
...
) DEFAULT CHARSET=utf8
使用此类定义创建表格时,您的数据将永远不会出现
答案 1 :(得分:1)
请参考:每个程序员绝对需要知道编码和字符集以处理文本:http://kunststube.net/encoding/