Home  >  Article  >  Backend Development  >  都有哪些地方的编码方式需要注意?

都有哪些地方的编码方式需要注意?

WBOY
WBOYOriginal
2016-06-23 14:04:571097browse

接触这么长时间的网页设计,已经碰到了非常多的和编码方式有关的东西了。但是今天又遇到了了一次乱码,还好搜一下就解决了。
以下是我知道的需要注意编码方式的地方:
1.
(通知浏览器本页面的解码方式)
2.
文档保存时的编码方式
3.
数据库的编码方式(在定义数据库或者表的时候设置)
4.
SQL语句的编码方式(使用“SET NAMES UTF8”设置)

其中最后一个的编码方式是由什么决定的?在这种情况下:
一个静态页面通过文本数据框数据一个数据,通过get方法传输到另一个php页面,这个php页面将这个数据放到一条插入语句中,并执行这条SQL语句。
此时这条查询语句的编码方式是由什么决定的?是静态页面的编码方式还是动态页面的编码方式还是其他的东西?反正我全都设置成UTF-8了,成功插入了,没有乱码。但是问题是每次插入都要使用“SET NAMES UTF8”设置,怎么才能把UTF8设置成SQL语句的默认编码方式?

另外还有那些地方需要注意编码方式?


回复讨论(解决方案)

所有的“编码方式”都以输出的页面为基准

mysql具有自适应“编码”的功能(其他数据库不清楚),即你让他返回什么编码他就返回什么编码

原则是:几乎每一次IO就要考虑编码问题
载入php本身就是一次,因为系统/web server和php本身就是两个编码
php输出,客户端系统/浏览器和输出的字符是两个编码
读写文件、读写数据库,include……等等

再提几个容易忽略的
cookies,这个几率不大,但也要留意
session,我没测试两个不同编码的php共同使用一个session的情况,你试试
发送接收,例如curl、socket和API
和其他语言交互
……

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn