当前位置:首页 » 编程语言 » php乱

php乱

发布时间: 2025-04-25 12:19:28

A. editplus 3.51编写php文件时,保存为utf-8,打开显示中文还是乱码,用notepad++打开,显示的是ansi编码

要彻底解决乱码问题,需要3个地方的编码一致:
1,数据库编码,mysql_query(set names utf8);
2,就是你所说的文件编码保存要是utf-8;
3,网页编码,可以两种方式设置(1),在html文件中设置<meta http-equiv="content-type" content="type=text/html;charset=utf-8" />
(2),在php文件中设置header("Content-type:text/html;charset=utf-8");
希望对你有所帮组!

B. utf-8-新手问题phpmysql乱码问题

解决PHP和MySQL中UTF8编码导致的乱码问题,需要按照以下步骤操作

  1. 配置MySQL字符集

    • 在MySQL配置文件my.cnf的[mysqld]部分添加charactersetserver=utf8mb4。
    • 重启MySQL服务以应用更改。
  2. 检查并修改数据库表的字符集

    • 使用SQL查询SHOW CREATE TABLE 表名;查看表的字符集。
    • 如果字符集不是UTF8,使用ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;修改表的字符集和排序规则。
  3. 在PHP中设置字符集

    • 在PHP文件顶部添加mb_internal_encoding;。
    • 使用PDO连接数据库时,指定字符集为UTF8,例如:$conn = new PDO;。
  4. 确保数据以UTF8格式编码

    • 在执行SQL查询和插入数据时,确保数据以UTF8格式编码。
  5. 正确设置输出字符集

    • 在输出HTML页面时,使用<meta charset="UTF8">标签指定字符集。

通过以上步骤,可以确保PHP和MySQL之间的数据编码一致,从而避免乱码问题

C. 用PHP从数据库中取出的中文是乱码,怎么处理能使中文正常显示

数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:mysql_query("SET NAMES GBK");或mysql_query("SET NAMES GB2312");来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。如果页面是UTF-8编码的话,可以用:mysql_query("SET NAMES UTF8"); 注意是UTF8而不是一般用的UTF-8。假如页面申明的编码与数据库内部编码一致可以不设定连接编码。
事实上MYSQL配置文件my.ini中定义了2个默认编码,分别是[client]里的default-character-set和[mysqld]里的default-character-set来分别设定默认时候客户端连接和数据库内部所采用的编码。上面指定的编码其实是MYSQL客户端连接服务器时候的命令行参数character_set_client,来告诉MYSQL服务器接受到的客户端数据是什么编码的,而不是采用默认编码。
转自:http://hi..com/delicious/item/37c18cf457dc142a753c4c0c

D. PHP 输出简单的中文 乱码问题

解决php中中文乱码问题方法

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


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


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

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

  3. 如果你的HTML文件文件出现了乱码问题,那么你可以在head标签里面加入UTF8编码(国际化编码):UTF-8是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。

(4)php乱扩展阅读:

解决PHP 输出简单的中文 乱码问题的其他方法:

在php的echo前面加入header("Content-Type:text/html;charset=gb2312")

把<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />中的UTF-8改成gb2312

E. 中文url编码、base64编码,PHP解码中文部分乱码

如果两端服务器页面使用的编码不一致,就会导致乱码

如你所说,对方服务器发来的是GBK编码的内容,如果你本地PHP用的编码不是GBK就会是乱码

2种解决方案:

  1. 将页面编码更改为GBK(可以通过header('Content-Type:text/html charset=gbk');)

  2. 将GBK编码转为当期页面编码(假设当前页面是utf-8),可以使用iconv('gbk','utf-8',$content);其中$content是你经过urldecode、base64解码后的字符串

F. utf8编码的php导出CSV乱码怎么解决

解决乱码的方法:首先使用iconv函数将utf8编码转码为GBK,语法为“$str = iconv('utf-8' 'GBK//IGNORE' $str));”。其次,在输出内容前先输出BOM头,这样Excel可自动识别到是UTF-8。其实需求是将数据导出到Excel,PHPExcel库虽然强大,但在内存使用上较为昂贵,对于超过10万的数据处理在web请求中较为困难。因此,使用原生PHP导出轻量的csv仍然是有需求的。

通常情况下,将UTF-8编码的内容导出到csv中,使用Excel打开会显示乱码,尤其是非主流字符或emoji表情。这是因为windows系统默认的Excel使用GBK编码解析。现今,编码通常都是使用UTF-8,除非是大公司知名产品为了节省流量而出有GBK等其他编码的版本。

解决乱码问题,通常使用PHP中的iconv函数进行转码为GBK,这样默认的Excel打开就不会有问题。但对于emoji表情等主流字符,GBK并不能显示,转码失败直接为空。可以添加//IGNORE标记进行忽略,这样只是忽略了它们,其他正常字符仍然能保留。

$str = iconv('utf-8' 'GBK//IGNORE' $str));

这可以说是一种折中方案。能否不转码直接输出UTF-8?Excel是否能自动识别UTF-8并使用UTF-8来解码显示?答案是可以的,只是需要一个BOM头(非windows系统中没有这个东西),有BOM头它就能识别到是UTF-8,否则会用默认的GBK处理,导致乱码。正确的输出BOM头如下:

$fp = fopen('/test_csv.csv' 'a');fwrite($fp,chr(0xEF).chr(0xBB).chr(0xBF)); //输出BOM头fputcsv($fp, ['标题']);fputcsv($fp, ['解决乱码']);fclose($fp);

以上测试结果证实,这种方法可以解决乱码问题,并正常显示emoji表情等非主流字符。

热点内容
缓存与存储 发布:2025-04-25 17:14:59 浏览:739
sql中selectinto语句 发布:2025-04-25 17:14:14 浏览:219
pilpython安装 发布:2025-04-25 17:12:55 浏览:804
安卓手机usb偏好设置在哪里 发布:2025-04-25 17:02:53 浏览:574
梁箍筋加密区间 发布:2025-04-25 17:02:10 浏览:426
大同忘记密码找回多少钱 发布:2025-04-25 16:55:22 浏览:985
手机ip被加入黑名单限制访问 发布:2025-04-25 16:40:51 浏览:731
内网的服务器地址怎么查 发布:2025-04-25 16:29:32 浏览:926
视频缓存下载浏览器 发布:2025-04-25 16:21:53 浏览:1002
批量抖音脚本 发布:2025-04-25 15:58:10 浏览:836