宝马娱乐在线112222 > 网络应用 > 完美解决PHP中文乱码

原标题:完美解决PHP中文乱码

浏览次数:95 时间:2019-10-01

  warning: move_uploaded_file()[function.move-uploaded-file]:failed to open stream: invalid argument in ...

php url地址栏传中文乱码解决方法集合

  在linux环境下用gb2312编码虽然不会出现这些错误,但保存后的文件名出现乱码导致无法读取文件,这时可先将参数转换成操作系统识别的编码,编码转换可用mb_convert_encoding(字符串,新编码,原编码)或iconv(原编码,新编码,字符串),这样处理后保存的文件名就不会出现乱码,也可以正常读取文件,实现中文名称文件的上传、下载。

header("Content-Transfer-Encoding: binary");

  warning: filesize() [function.filesize]: stat failed for ... in ...

default-character-set=utf8

  header("expires: 0");

php和mysql中uft-8中文编码乱码的几种解决办法

p.s.最初是用escape做中文转义..注意它与 encodeuricomponent 的区别

php上传文件中文文件名乱码的解决方法

  二.php与mysql教程的数据交互

二.PHP与Mysql的数据交互

  default-collation=utf8_bin

$file_type是文件的类型,$file_name是原来的名字,$file_path是保存在服务上文件的地址。

  header("content-disposition: attachment; filename="$file_name"");

header("Expires: 0");

  header("content-transfer-encoding: binary");

三.PHP与操作系统相关

用ajax传递中文时..ff会很聪明的自动将中文字符转成十六进制.而bc的ie却非得自己处理..-____!!

header("Content-type: $file_type");

php中其它引起乱码解决方法分析

b. 如果欲使用utf-8编码,那么php要输出头:header(“Content-Type: text/html; charset=utf-8"),静态页面添加,所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有BOM,如果使用session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->UTF-8签名,选择总是删除,再保存就可以去掉BOM信息了。

  其实还有更好的解决方法,彻底与系统脱离,也就不用考虑系统是何编码。可以生成一个只有字母和数字的序列作为文件名,而将原来带有中文的名字保存在数据库中,这样调用move_uploaded_file()就不会出现问题,下载的时候只需将文件名改为原来带有中文的名字。实现下载的代码如下

Warning: move_uploaded_file()[function.move-uploaded-file]:failed to open stream: Invalid argument in ...

  default-character-set=utf8

  1. php文件本身的编码与网页的编码应匹配

  [mysqld]

ajax+php中文乱码解决办法

  default-storage-engine=myisam

在[mysqld]下加入:

  warning: readfile() [function.readfile]: failed to open stream: invalid argument in ..

default-collation=utf8_bin

  php与数据库教程的编码应一致

[mysql]

  2. 在需要做数据库操作的php程序前加mysql_query("set names '编码'");,编码和php编码一致,如果php编码是gb2312那mysql编码就是gb2312,如果是utf-8那mysql编码就是 utf8,这样插入或检索数据时就不会出现乱码了

复制代码代码如下:

  b. 如果欲使用utf-8编码,那么php要输出头 :header(“content-type: text/html; charset=utf-8"),静态页面添加,所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有bom,如果使用 session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->utf-8签名,选择总是删除,再保存就可以去掉bom信息了。

PHP中文乱码解决方案

  [mysql]

  1. 在需要做数据库操作的php程序前加mysql_query("set names '编码'");,编码和php编码一致,如果php编码是gb2312那mysql编码就是gb2312,如果是utf-8那mysql编码就是utf8,这样插入或检索数据时就不会出现乱码了

  在[mysqld]下加入:

init_connect='SET NAMES utf8'

  windows和linux的编码是不一样的,在windows环境下,调用php的函数时参数如果是utf-8编码会出现错误,比如 move_uploaded_file()、filesize()、readfile()等,这些函数在处理上传、下载时经常会用到,调用时可能会出现下面的错误:

Warning: filesize() [function.filesize]: stat failed for ... in ...

 

在Linux环境下用gb2312编码虽然不会出现这些错误,但保存后的文件名出现乱码导致无法读取文件,这时可先将参数转换成操作系统识别的编码,编码转换可用mb_convert_encoding(字符串,新编码,原编码)或iconv(原编码,新编码,字符串),这样处理后保存的文件名就不会出现乱码,也可以正常读取文件,实现中文名称文件的上传、下载。

  $file_type是文件的类型,$file_name是原来的名字,$file_path是保存在服务上文件的地址

php截取中文字符串不乱码的方法

本文由宝马娱乐在线112222发布于网络应用,转载请注明出处:完美解决PHP中文乱码

关键词:

上一篇:php 获取客户端的ip地址程序代码

下一篇:没有了