php中字符串变量乱码问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 20:40:15
一个php文件
设置网页格式为gb2312,在连接数据库后同样set names gb2312.
在mysql数据库中有个姓名字段,有个值为小明
现在连接数据库,如果直接有语句where 姓名=“小明”那么可以被查找到
现在如果我有设置$x=“小明” 然后where 姓名=$x 就提示字符串乱码了
该如何设置,避免乱码。

加上引号试试.

在做php类型的web程序时,文件乱码都是由编码问题造成的 影响这个因素有四个地方:
1. 文件本身的编码 我们在用记事本或者editplus dw utraledit一类的工具保存文件的时候可以选择的 记事本默认是ansi 另外还有utf8一类的选项
2. html文件的编码 就是页面上 meta charset=“gb2312” 这样的
3.数据库的编码 就是在建立数据库的时候选择的 如果是中文的你可以选择 gb2312 或者是 gbk
4.程序和数据库连接时候的编码 就是你说的 “set names gb2312实现的功能”
只要这四个方面都正确协调 就不会出现任何问题 当然有时候我们的一些设置可能有问题 但是也不影响程序的运行 比如数据库方面 错着进去 错着出来【换句话说怎么进去怎么出来 虽然在里面的时候不对 但是出来还是对的】 程序也能正常跑起来 但是从严格上讲 这是不合适的

根据上面的分析 你的描述 我想可能是你的文件类型 保存成了utf 或者 unicode类型的