广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP开发出现中文乱码的原因及解决方法
  • 114
分享到

PHP开发出现中文乱码的原因及解决方法

2023-06-17 19:06:52 114人浏览 泡泡鱼
摘要

本篇内容主要讲解“PHP开发出现中文乱码的原因及解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php开发出现中文乱码的原因及解决方法”吧!一.首先是PHP网页的编码php文件本身的编码与

本篇内容主要讲解“PHP开发出现中文乱码的原因及解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习php开发出现中文乱码的原因及解决方法”吧!

一.首先是PHP网页的编码

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

a.如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),静态页面添加<meta Http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。

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

php本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。

二.PHP与Mysql的数据交互

PHP与数据库的编码应一致

修改Mysql配置文件my.ini或my.cnf,mysql***用utf8编码

[mysql]  default-character-set=utf8 [mysqld]  default-character-set=utf8 default-storage-engine=MyISAM 在[mysqld]下加入:  default-collation=utf8_bin init_connect='SET NAMES utf8'

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

三.PHP与操作系统相关

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

Warning: move_uploaded_file()[function.move-uploaded-file]:failed to open stream: Invalid argument in ...   Warning: move_uploaded_file()[function.move-uploaded-file]:Unable to move '' to '' in ...   Warning: filesize() [function.filesize]: stat failed for ... in ...   Warning: readfile() [function.readfile]: failed to open stream: Invalid argument in ..

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

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

header("Pragma: public");  header("Expires: 0");  header("Cache-Component: must-revalidate, post-check=0, pre-check=0");  header("Content-type: $file_type");  header("Content-Length: $file_size");  header("Content-Disposition: attachment; filename=\"$file_name\"");  header("Content-Transfer-Encoding: binary");  readfile($file_path);

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

到此,相信大家对“PHP开发出现中文乱码的原因及解决方法”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: PHP开发出现中文乱码的原因及解决方法

本文链接: https://www.lsjlt.com/news/292331.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP开发出现中文乱码的原因及解决方法
    本篇内容主要讲解“PHP开发出现中文乱码的原因及解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP开发出现中文乱码的原因及解决方法”吧!一.首先是PHP网页的编码php文件本身的编码与...
    99+
    2023-06-17
  • PHP出现中文乱码的原因及解决方法是什么
    本篇内容主要讲解“PHP出现中文乱码的原因及解决方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP出现中文乱码的原因及解决方法是什么”吧!PHP出现中文乱码的原因字符集编码不一致常常...
    99+
    2023-07-05
  • MySQL出现乱码的原因及解决方法
    本篇内容主要讲解“MySQL出现乱码的原因及解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL出现乱码的原因及解决方法”吧!MySQL出现乱码的原...
    99+
    2022-10-18
  • java导出excel乱码原因及解决方法
    java导出错误方式与正确方法:(推荐:java视频教程)错误方式: response.setHeader("Content-Disposition", "inline;filename="+ new String(fileName.get...
    99+
    2015-10-16
    java基础 java
  • java导出excel乱码解决方法及原因
    java导出错误方式与正确方法:(推荐:java视频教程)错误方式: response.setHeader("Content-Disposition", "inline;filename="+ new String(fileName.get...
    99+
    2019-01-11
    java
  • 浅析PHP输出汉字乱码的原因及解决方法
    PHP是一种开源的服务器端脚本语言,被广泛应用于Web开发。但是,在进行中文字符的输出时,经常会发生字符集转换的问题而出现乱码,这是让许多开发人员头疼的问题。本文将介绍PHP输出汉字乱码的原因及解决方法。原因分析在PHP中,字符编码主要有两...
    99+
    2023-05-14
    php 乱码
  • java出现乱码的原因与解决方法详解
    java在字符串中统一用Unicode表示。(推荐:java视频教程)对于任意一个字符串:String string = “测试字符串”;如果源文件是GBK编码,操作系统默认环境编码也为GBK,那么编译的时候,JVM将按照GBK编码将字节数...
    99+
    2017-02-06
    java基础 java 乱码
  • 乱码问题的原因及解决方法
    这篇文章主要讲解了“乱码问题的原因及解决方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“乱码问题的原因及解决方法”吧!PHP乱码问题1、PHP 如何处理上传的CSV文件?可以用fgetcs...
    99+
    2023-06-17
  • php出现乱码的原因是什么及如何解决
    本篇内容主要讲解“php出现乱码的原因是什么及如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php出现乱码的原因是什么及如何解决”吧!第一部分:为什么会出现乱码PHP文件编码问题当PHP...
    99+
    2023-07-05
  • 分析phpexcel中出现乱码的原因和解决方法
    随着PHP语言在开发中的广泛应用,越来越多的开发者遇到过phpexcel输出乱码的情况。面对这种问题,大家不要慌张,本文将向大家介绍phpexcel中出现乱码的原因和解决方法。一、乱码产生的原因编码问题phpexcel文件的编码设置与本地环...
    99+
    2023-05-14
  • 浅析Golang中乱码的原因及解决方法
    Golang的多语言支持和Unicode字符集的全面支持使其成为开发者的一种非常流行的语言选择。但是,有些开发者在使用Golang时会遇到乱码问题,特别是在处理中文字符时更为常见。本文将介绍Golang中可能出现的乱码问题、原因以及解决方法...
    99+
    2023-05-14
    Golang 乱码
  • php中文输出是乱码的原因是什么及怎么解决
    本篇内容主要讲解“php中文输出是乱码的原因是什么及怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中文输出是乱码的原因是什么及怎么解决”吧!一、中文输出乱码的原因字符编码不一致字符...
    99+
    2023-07-05
  • 【总结】运行php文件出来乱码的原因和解决方法
    在使用 PHP 进行开发时,经常会发现在运行 PHP 文件时出现乱码的情况。这种情况的发生通常与编码有关。接下来,本文将为您详细介绍运行 PHP 文件出现乱码的原因以及如何解决这个问题。原因1.1 编码不一致在开发过程中,我们使用的编辑器和...
    99+
    2023-05-14
  • Golang中乱码的原因及解决方法是什么
    这篇“Golang中乱码的原因及解决方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Golang中乱码的原因及解决方...
    99+
    2023-07-05
  • Mysql数据库乱码的原因及解决方法
    这篇文章主要介绍“Mysql数据库乱码的原因及解决方法”,在日常操作中,相信很多人在Mysql数据库乱码的原因及解决方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mysq...
    99+
    2022-10-18
  • PHP5.6乱码的原因及解决方法是什么
    本篇内容介绍了“PHP5.6乱码的原因及解决方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.原因乱码的出现是由于字符集的不匹配或...
    99+
    2023-07-05
  • 探讨PHP中文乱码的原因和解决方案
    PHP是一种多用途的服务器端脚本语言,广泛用于网络开发,特别是在Web开发中。在编写PHP网站时,中文汉字部分如果不正确地处理,就会出现乱码问题。那么,为什么PHP中文部分会出现乱码?这个问题是很多PHP开发者都会遇到的。本文将探讨PHP中...
    99+
    2023-05-14
    中文乱码 php
  • 浅析PHP符号乱码产生的原因及解决方法
    在使用PHP编程语言的过程中,有时会遇到符号乱码的问题。符号乱码指的是在代码运行或页面显示时,原本应该显示的符号变成了一些乱码或者其他未知字符,这不仅会影响程序的正常运行,还会影响程序的可读性和可维护性。本文将介绍PHP符号乱码产生的原因和...
    99+
    2023-05-14
    乱码 php
  • navicat出现中文乱码的解决方法
    小编给大家分享一下navicat出现中文乱码的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!navicat是强大的可视化...
    99+
    2022-10-18
  • AJAX出现中文乱码的解决方法
    本篇内容介绍了“AJAX出现中文乱码的解决方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!客户端代码&n...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作