- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章PHP乱码问题,UTF-8乱码常见问题小结由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
一.HTML页面转UTF-8编码问题 1.在head后,title前加入一行: <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> 顺序不能错,一定要在 显示的标题有可能是乱码! 2.html文件编码问题: 点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8, 如果是ANSI,需要将编码改成:UTF-8。 3.HTML文件头BOM问题: 将文件从其他的编码转换成UTF-8编码时,有时候会在文件的最开始加上一个BOM标签, 在个BOM标签可能会导致浏览器在显示中文的时候出现乱码。 删除这个BOM标签的方法: 1.可以用Dreamweaver打开文件,并重新保存,即可以去除BOM标签! 2.可以用EditPlus打开文件,并在菜单“首选项”->“文件”->"UTF-8标识",设置为:“总是删除签名”, 然后保存文件,即可以去除BOM标签! 4.WEB服务器UTF-8编码问题: 如果你按以上所列的步骤做了,还是有中文乱码问题, 请检查你的所使用的WEB服务器的编码问题 如果你使用的是Apache,请将配置文件里的:charset 设成:utf-8(这里仅列出方法,具体格式请参考apache的配置文件) 如果你使用的是Nginx,请将nginx.conf里的:charset 设成 utf-8, 具体找到 "charset gb2312;"或者类似的语句,改成:“charset utf-8;”。 二.PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题 点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8, 如果是ANSI,需要将编码改成:UTF-8。 3.PHP文件头BOM问题: PHP文件一定不可以有BOM标签 否则,会出现session不能使用的情况,并有类似的提示: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent 这是因为,在执行session_start() 的时候,整个页面不能有输出,但是当由于前PHP页面存在BOM标签, PHP把这个BOM标签当成是输出了,所以就出错了! 所以PHP页面一定要删除BOM标签 删除这个BOM标签的方法: 1.可以用Dreamweaver打开文件,并重新保存,即可以去除BOM标签! 2.可以用EditPlus打开文件,并在菜单“首选项”->“文件”->"UTF-8标识",设置为:“总是删除签名”, 然后保存文件,即可以去除BOM标签! 4.PHP以附件形式保存文件的时候,UTF-8编码问题: PHP以附件形式保存文件,文件名必须是GB2312编码, 否则,如果文件名中有中文的话,将是显示乱码: 如果你的PHP本身是UTF-8编码格式的文件, 需要将文件名变量由UTF-8转成GB2312: iconv("UTF-8", "GB2312", "$filename"); 5.截断显示文章标题时,出现乱码或者“?”问号的问题: 一般文章标题很长的时候,会显示一部分标题,会对文章标题进行截断, 由于一个UTF-8编码格式的中文字符会占用3个字符宽度, 截取标题的时候,有时会只截取到一个中文字符的1个字符或2字符宽度, 没截取完整,将出现乱码或“?”问号的情况, 用下面的函数截取标题,就不会有问题: 。
复制代码代码如下
function get_brief_str($str, $max_length) { echo strlen($str) ."<br>"; if(strlen($str) > $max_length) { $check_num = 0; for($i=0; $i < $max_length; $i++) { if (ord($str[$i]) > 128) $check_num++; } if($check_num % 3 == 0) $str = substr($str, 0, $max_length)."..."; else if($check_num % 3 == 1) $str = substr($str, 0, $max_length + 2)."..."; else if($check_num % 3 == 2) $str = substr($str, 0, $max_length + 1)."..."; } return $str; } 。
三.MYSQL数据库使用UTF-8编码的问题 1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci”, 如果该字段是存放英文或数字的话,默认就可以了。 相应的SQL语句,例如: 。
复制代码代码如下
CREATE TABLE `test` ( `id` INT NOT NULL , `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ; 。
2.用PHP读写数据库 在连接数据库之后: [hide]$connection = mysql_connect($host_name, $host_user, $host_pass); 加入两行: 。
复制代码代码如下
mysql_query("set character set 'utf8'");//读库 mysql_query("set names 'utf8'");//写库 。
就可以正常的读写MYSQL数据库了。 四.JS相关的UTF-8编码问题 1.JS读Cookie的中文乱码问题 PHP写cookie的时候需要将中文字符进行escape编码, 否则JS读到cookie中的中文字符将是乱码。 但php本身没有escape函数,我们新写一个escape函数: 。
复制代码代码如下
function escape($str) { preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r); $ar = $r[0]; foreach($ar as $k=>$v) { if(ord($v[0]) < 128) $ar[$k] = rawurlencode($v); else $ar[$k] = "%u".bin2hex(iconv("UTF-8","UCS-2",$v)); } return join("",$ar); } 。
JS读cookie的时候,用unescape解码, 然后就解决cookie中有中文乱码的问题了。 2.外部JS文件UTF-8编码问题 当一个HTML页面或则PHP页面包含一个外部的JS文件时, 如果HTML页面或则PHP页面是UTF-8编码格式的文件, 外部的JS文件同样要转成UTF-8的文件, 否则将出现,没有包含不成功,调用函数时没有反应的情况。 点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8, 如果是ANSI,需要将编码改成:UTF-8。 五.FLASH相关的UTF-8编码问题 FLASH内部对所有字符串,默认都是以UTF-8处理 1.FLASH读文普通本文件(txt,html) 要将文本文件的编码存为UTF-8 点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8, 如果是ANSI,需要将编码改成:UTF-8。 2.FLASH读XML文件 要将XML文件的编码存为UTF-8 点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8, 如果是ANSI,需要将编码改成:UTF-8。 在XML第1行写: 3.FLASH读PHP返回数据 如果PHP编码本身是UTF-8的,直接echo就可以了 如果PHP编码本身是GB2312的,可以将PHP转存成UTF-8编码格式的文件,直接echo就可以了 如果PHP编码本身是GB2312的,而且不允许改文件的编码格式, 用下面的语句将字符串转换成UTF-8的编码格式 $new_str = iconv("GB2312", "UTF-8", "$str"); 再echo就可以了 4.FLASH读数据库(MYSQL)的数据 FLASH要通过PHP读取数据库中的数据 PHP本身的编码不重要,关键是如果数据库的编码是GB2312的话, 需要用下面的语句将字符串转换成UTF-8的编码格式 $new_str = iconv("GB2312", "UTF-8", "$str"); 5.FLASH通过PHP写数据 一句话,FLASH传过来的字符串是UTF-8格式的, 要转换成相应的编码格式,再操作(写文件、写数据库、直接显示等等) 还是用iconv函数转换 6.FLASH使用本地编码(理论上不推荐使用) 如果想让FLASH不使用UTF-8编码,而是使用本地编码 对于中国大陆地区而言,本地编码是GB2312或GBK AS程序内,可以添加以下代码: System.useCodepage = true; 那么FLASH内所有字符都是使用GB2312的编码了 所有导入到FLASH或者从FLASH导出的数据,都应该做相应的编码转换 因为使用本地编码,会造成使用繁体中文地区的用户产生乱码,所以不推荐使用 。
最后此篇关于PHP乱码问题,UTF-8乱码常见问题小结的文章就讲到这里了,如果你想了解更多关于PHP乱码问题,UTF-8乱码常见问题小结的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
目录 前言 style-loader css-loader sass-loader postcss-loader babel-l
目录 1、简单动态字符串(SDS) 2、链表 3、字典 哈希表 哈希表节点 字典 4、跳跃表
JS运行三部曲 js运行代码共分三步 语法分析 预编译 解释执行 JavaScript代码在运行时,首先会进行语法分析,通篇检查代码是否存在低级错误,然后进行预编译,整理内
目录 +拼接方式 sprintf函数 Join函数 buffer.Builderbuffer.WriteString函数 buffer.B
下面整理下python有哪些方式可以读取数据文件。 1. python内置方法(read、readline、readlines) read() : 一次性读取整个文件内容。推荐使用re
背景 项目中的流程监控,有几种节点,需要监控每一个节点是否超时。按传统的做法,肯定是通过定时任务,去扫描然后判断,但是定时任务有缺点:1,数据量大会慢;2,时间不好控制,太短,怕一
目录 1. 提炼函数 2. 合并重复的条件片段 3. 把条件分支语句提炼成函数 4. 合理使用循环 5. 提前让函数退出代替嵌套条件分支
开始之前,pandas中dataframe删除对象可能存在几种情况 1、删除具体列 2、删除具体行 3、删除包含某些数值的行或者列 4、删除包含某些字符、文字的行或者列 本文就针对这四种情况探讨
setData setData 是小程序开发中使用最频繁的接口,也是最容易引发性能问题的接口。在介绍常见的错误用法前,先简单介绍一下 setData 背后的工作原理。 工作原理 小程序的视图层
下面是五种实现斐波那契数列的方法 循环 ? 1
一,分析代码运行时间 第1式,测算代码运行时间 平凡方法 快捷方法(jupyter环境) 第2式,测算代码多次运行平均时间 平凡方法 快捷方法(jupyter环境) 第
python之成为图像处理任务的最佳选择,是因为这一科学编程语言日益普及,并且其自身免费提供许多最先进的图像处理工具。本文主要介绍了一些简单易懂最常用的python图像处理库。 当今世界充满了各种
流式布局 采用流式布局会将元素按从左到右的顺序排列,如果一个元素在一行中放不下,那这个元素会另起一行依然按照从左到右的顺序排列 示例: 代码 public class Tes
@PropertySource 作用是:对自定义的properties文件加载 使用:@PropertySource(value={"classpath:people.properti
实现消息队列的两种方式 apache activemq官方实例发送消息 直接在apache官网http://activemq.apache.org/download-archives.html下
常用配置 以下配置能使用File -> New Projects Settings -> Settings for New Projects进行配置的尽量用这个配置,因为这个配置是作用
摘要: 开发者开发部署web应用时通常使用tomcat服务器,很多初学者只懂得在开发工具上配置,但离开了开发工具,自己手动配置部署,并让一个项目跑起来,你会了吗。小编也遇到过这样的困扰。网上查找的
1. 字符串的翻转 利用切片 ? 1
cookie和session在java web开发中扮演了十分重要的作用,本篇文章对其中的重要知识点做一些探究和总结。 1.cookie存在于浏览器 随意打开一个网址,用火狐的调试工具,随意选取
1、使用内置的tomcat,通过java -jar的方式启动 比如:java -jar bms.jar 但是这种启动方式 一旦关闭控制台 或者crtl+c 退出 此时应用就关闭了
我是一名优秀的程序员,十分优秀!