特殊字符设置PHP

特殊字符设置PHP,php,mysqli,Php,Mysqli,每次我创建一个新项目时,我都会遇到麻烦,因为我忘了用UTF-8创建数据库排序规则,或者有一些我没有看到的字符。。还有双倍。。或三重。。。看起来很讨厌。我通常使用mysqli\u real\u escape\u string确保他把字符写下来,当我打印它们时,我使用htlmentities。但这并不适用于所有角色,也不适用于double。。或者三重 在建立一个项目时,是否有一个我应该牢记的一般规则/指导方针,这样我就不会对这些特殊角色产生麻烦 在建立项目时,我是否应该记住一条一般规则/指导方针 当

每次我创建一个新项目时,我都会遇到麻烦,因为我忘了用UTF-8创建数据库排序规则,或者有一些我没有看到的字符。。还有双倍。。或三重。。。看起来很讨厌。我通常使用mysqli\u real\u escape\u string确保他把字符写下来,当我打印它们时,我使用htlmentities。但这并不适用于所有角色,也不适用于double。。或者三重

在建立一个项目时,是否有一个我应该牢记的一般规则/指导方针,这样我就不会对这些特殊角色产生麻烦

在建立项目时,我是否应该记住一条一般规则/指导方针

当然可以。
始终将数据库连接字符集设置为与HTML页面实际字符集匹配。

比如说,你的页面是utf-8格式的,然后发布

mysqli_set_charset($conn,'utf8');
就在连接之后

在Windows-1251中,然后将其设置为

mysqli_set_charset($conn,'cp1252');
等等

另外,请始终使用
mysqli\u real\u escape\u string
对动态添加到查询中的字符串文本进行格式化,
并在打印用户输入时使用
htmlspecialchars()
返回HTML页面

更新:
您还需要使用支持所有必需字符的字符集设置表(UTF-8是首选默认值)

使用这种定义创建表时,数据中永远不会有

在建立项目时,我是否应该记住一条一般规则/指导方针

当然可以。
始终将数据库连接字符集设置为与HTML页面实际字符集匹配。

比如说,你的页面是utf-8格式的,然后发布

mysqli_set_charset($conn,'utf8');
就在连接之后

在Windows-1251中,然后将其设置为

mysqli_set_charset($conn,'cp1252');
等等

另外,请始终使用
mysqli\u real\u escape\u string
对动态添加到查询中的字符串文本进行格式化,
并在打印用户输入时使用
htmlspecialchars()
返回HTML页面

更新:
您还需要使用支持所有必需字符的字符集设置表(UTF-8是首选默认值)


当使用这样的定义创建表时,您的数据中永远不会有“s”

指南:始终使用UTF-8!?!对于那些在我身后有问题的人来说,这是一个很好的指引!指南:始终使用UTF-8!?!对于那些在我身后有问题的人来说,这是一个很好的指引!这适用于双人和双人,但如果我现在将数据写入数据库,它会将每个特殊字符作为?插入。好的,这就是我所做的:我已经将我的DB字符集设置为UTF8,将我的所有我的DB默认字符集更改为DB字符集。现在他只写空数据(我认为是utf无法处理的字符(Ø20))和其他他一直在写的表?在像é/è或è这样的角色中。我是不是遗漏了什么?这对双人和双人都有效,但如果我现在将数据写入数据库,它会将每个特殊字符作为?插入。好的,这就是我所做的:我已经将我的DB字符集设置为UTF8,将我的所有我的DB默认字符集更改为DB字符集。现在他只写空数据(我认为是utf无法处理的字符(Ø20))和其他他一直在写的表?在像é/è或è这样的角色中。我错过什么了吗?