PHP采用get获取url汉字出现乱码的解决方法

本文实例讲述了PHP采用get获取url汉字出现乱码的解决方法。分享给大家供大家参考。具体方法如下:

一、问题:

本来打算这样使用

复制代码 代码如下:

<a href="list.php?plate=辖区动态" charset="utf-8" target="main">[查看辖区动态]</a>

结果在list.php页面得到的是—–查看[辖区动怿]
一开始猜想可能是汉字的“态"这个编码和某些东西冲突了,所以出现乱码。

二、解决方法:

使用:

复制代码 代码如下:

<a href="list.php?plate=<?php echo urlencode("辖区动态");?>" charset="utf-8" target="main">[查看]</a>

然后在list.php页面这样用

复制代码 代码如下:

<?php
header("Content-type: text/html; charset=utf-8");
if($_GET['plate'])
echo $plate=urldecode($_GET['plate']);
?>

也就不会乱码和传递不正常了。
注意此处的接收GET页面编码需要和发送端一致!

关于string urlencode ( string $str )函数

此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。
示例1 urlencode()

复制代码 代码如下:

<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

示例2 urlencode() 与 htmlentities()

复制代码 代码如下:

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

希望本文所述对大家的PHP程序设计有所帮助。

时间: 2014-11-11

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

可能会有不少朋友碰到一些问题就是上传文件时如果是英文倒好原文名不会有问题,如果是中文可能就会出现乱码了,今天我来给大家总结一下导致乱码php上传文件中文文件名乱码的原因与解决办法吧. 这几天在windows下安装了XAMPP,准备初步学习一下php的相关内容.这几天接触到了php上传文件,但是出现了一个郁闷问题,我准备上传一个excel文件,但是如果文件名是中文名就会报错. 一来二去很是郁闷,后来仔细想了想应该是文件编码的问题,我写的php文件使用的是UTF-8编码,如果没有猜错APACHE处理

PHP页面转UTF-8中文编码乱码的解决办法

对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php文件乱码和页面乱码. PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: text/html;charset=utf-8"); 2.PHP文件编码问题 点击编辑器的菜单:"文件"->"另存为",可以看到当前文件的编码,确保文件编码为:UTF-8, 如果是ANSI,需要将编码改成:UTF-8. 3.PHP文件头BOM问题

二招解决php乱码问题

php网页出现乱码一般是在建立数据库时用的编码和php网页的编码不同造成的, 用phpmyadmin建立的数据库如果你不指定编码他默认是latin1_swedish_ci 编码,既瑞典语不区分大小写,而我们中国做的网页不是GBK就是GB2312编码,这样不出现乱码才怪. 1,建立数据库时指定编码. 在此再唠叨一下常用的编码,免的新手又迷茫: 如果你做的是简体中文网页,那么你在建立数据库时用GB2312编码,gb2312_chinese_ci. 如果你做的是繁体中文网页,那么你建立数据库时要用gi

phpmailer中文乱码问题的解决方法

1:打开phpmailer 核心文件 class.phpmailer.php , 将 public $CharSet = 'iso-8859-1′; 改为 public $CharSet = 'UTF-8′; 至于为什么要将'iso-8859-1′改为'UTF-8',请google或百度一下'iso-8859-1′就清楚. 2:设置邮件的编码: 复制代码 代码如下: $mail = new PHPMailer();$mail->Charset='UTF-8′; 相信有不少朋友是设置成"GB

php读取mysql中文数据出现乱码的解决方法

1.PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库了解决方法:选择'UTF8'或者'gb2312',这样客户浏览器会自动选择并出现正确的中文显示.注意:'UTF8'或者'gb2312'都可以正确显示中文的. 2.数据库MySQL中的编码类型不正确.解决方法:创建数据库的时候,MySQL 字符集选择'UTF8',MySQL 连接校对选择utf8_general_ci,这样创建的数据库用来存储中文肯定没有问题,否则,你的中文首先在MySQL中就是乱码,更不

PHP MYSQL乱码问题,使用SET NAMES utf8校正

先记下,免得以后想不起来又到处去找! PHP操作数据库的时候,数据库中数据使用UTF8编码,在读出来的时候,显示的全是???????问号乱码,找了一些资料原来是在读取之前进行一次编码设置: 复制代码 代码如下: create table tablename ( id int not null auto_increment, title varchar(20) not null, contnet varchar(300) defalut null, primary key ('id') )begi

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

php地址栏传中文$_GET下来后乱码,urlencode和urldecode用法详解url编码语法: string urlencode(string str);返回值: 字符串函数种类: 编码处理例如: 复制代码 代码如下: <?php$ChineseName="我的名字,是中文的哦";$EncodeStr=urlencode($ChineseName);echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名

php的GD库imagettftext函数解决中文乱码问题

本文实例讲述了php的GD库imagettftext函数解决中文乱码问题的方法.分享给大家供大家参考.具体如下: 使用imagettftext写中文时,常出现乱码问题.解决方法是将中文字符串转为utf-8格式即可.具体代码如下(文件格式为gb2312): 复制代码 代码如下: <?php $im = imagecreatefromjpeg('./1.jpg'); $w = imagesx($im); $h = imagesy($im); $green = imagecolorallocate($

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文

PHP页面中文乱码分析

PHP页面中文乱码出现的原因有几种,一种是页面编码不统计一,二是数据库未设置编码,三是apache编码有问题,下面我来给大家介绍两种解决办法,总体来讲就是页面编码不统一了.出现乱码大部分是由于编码方式的不一致导致的,其中主要有四个地方不一致就可能存在这个可能:1.页面文件的编码方式(.html,.php等)2.html.head中指定浏览器的编码方式3.MySql数据库传输的编码方式4.Apache字符集 在只有PHP代码的页面,做JS弹窗的时候,如果弹窗内容含有中文,可能会出现乱码的问题,解决

PHP base64编码后解码乱码的解决办法

在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的.来看看罪魁祸首是谁. 嫌疑人:base64_encode 和 base64_decode 罪行:我写了一个跳转和提示函数,接收提示信息后跳转到指定的页面,但是跳转提示时汉字乱码. 跳转模版代码如下: 复制代码 代码如下: <!DOCTYPE html><html><head><meta charset="utf-8"><meta nam

php上传中文文件名乱码问题处理方案

php上传文件是最最基础的一个技术点,但是深入进去也有不少问题需要解决,这不,上传中文文件后,文件名变成了乱码. 下面是问题代码,很简单: 1.问题代码 html部分: 复制代码 代码如下: <html>  <body>  <form action="upload_file.php" method="post"  enctype="multipart/form-data">  <label for=&qu

phpstorm编辑器乱码问题解决

PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提供用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查. 由于PHPStorm编辑器默认是UTF-8编码 如果开发的是gbk编码的中文站,加载GBK编码会出现乱码 解决方法: 复制代码 代码如下: FILE->Setting->File Encoding->将UTF-8改成GBK 几个字符的改动就解决了这个问题,是不是很简单呢

php中json_encode UTF-8中文乱码的更好解决方法

最近在接口代码当中用到过json_encode,在网上找到说json_encode编码设置为UTF-8中文就不会乱码,经验证这办法确实是有效果的,但是不知道为什么,代码在用过一段时间之后就不太管用了.以下是自己的解决json_encode的办法.有更好的方法请分享出来吧! 第一种: 这种简单的做一个代码转换,urlcode之后再返回所需数组 我代码这样就足够了. 代码如下 复制代码 public static function encodeOperations ($array) { foreac

PHP+MYSQL中文乱码问题

从MySQL 4.1开始引入多语言的支持,但是用PHP插入的中文会出现乱码.无论用什么编码也不行. 解决这个问题其实很简单. 1.在建表的时候设置编码类型为gb2312_chinese_ci. 2.在PHP页面的数据库连接语句加一行mysql_query("SET NAMES 'gb2312'",$link); 例如 $db_host="localhost"; $db_user="root"; $db_password="passwor

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

GBK编码截取示例 复制代码 代码如下: $str = '我是谁';  //gbk编码的字符串echo mb_substr($str, 0, 1, 'gbk'); //输出 我 mb_substr方法比substr多一个参数,用来指定字符串编码. utf-8编码截取示例 [code]$str = '我abc是谁';  //utf-8编码的字符串echo mb_substr($str, 0, 2, 'utf-8'); //输出 我a[/code 中英混合也完全没有问题. 友情提示 使用的时候要注意

php使用fgetcsv读取csv文件出现乱码的解决方法

本文实例讲述了php使用fgetcsv读取csv文件出现乱码的解决方法.分享给大家供大家参考.具体分析如下: 一般来说在php中碰到乱码多半是编码问题,在这里我们实例分析了fgetcsv读取csv文件乱码原因所在与解决方法. 例子如下: 复制代码 代码如下: function get_csv_contents( $file_target ){  $handle  = fopen( $file_target, 'r');  while ($data = fgetcsv($handle, 1000,

完美解决PHP中文乱码

一.首先是PHP网页的编码 1. php文件本身的编码与网页的编码应匹配 a. 如果欲使用gb2312编码,那么php要输出头:header("Content-Type: text/html; charset=gb2312"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码

php file_get_contents抓取Gzip网页乱码的三种解决方法

把抓取到的内容转下编码即可($content=iconv("GBK", "UTF-8//IGNORE", $content);),我们这里讨论的是如何抓取开了Gzip的页面.怎么判断呢?获取的头部当中有Content-Encoding: gzip说明内容是GZIP压缩的.用FireBug看一下就知道页面开了gzip没有.下面是用firebug查看我的博客的头信息,Gzip是开了的. 复制代码 代码如下: 请求头信息原始头信息Accept text/html,appl

PHP中文乱码解决方案

汉字乱码真是一个悲催的事情,JAVA讨厌汉字,PHP也不喜欢汉字: Java乱码最终使用了spring给出的过滤器来过滤,处处过滤,其实影响了速度,不过没有办法,汉字就是W国首先不考虑的事情: 想不到PHP也是乱码处处在,当你使用亲兄弟MySQL的时候,汉字显得那么亲切,从未考虑过他会变成天书:不过为了和其他其他交互,把PHP的手伸到SQL SERVER的时候,乱码来了,原因是第三方系统用的GBK编码: 哎,转换吧:    1,PHP自带的转换函数ICONV,一个高大上的函数: 复制代码 代码如

php导入csv文件碰到乱码问题的解决方法

今天主要是想写一个php导入csv文件的方法,其实网上一搜一大把.都是可以实现怎么去导入的.但是我导入的时候遇到了两个问题,一个是在windows上写代码的时候测试发生了乱码问题,然后解决了.第二个是提交到linux系统上的时候又发生了乱码.我开始还不清楚是乱码的原因,一开始我还以为是代码svn提交发生的错误,到最后我在我的一个群里提问了一下,一朋友是做phpcms的,他说他遇到从Windows提交到Linux的时候刚开始也总是发生错误,后来排查原因就是乱码导致成的.下面切入正题看怎么解决两个问

php和mysql中uft-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不能使用

php读取der格式证书乱码解决方法

遇到的问题: 我的项目需要用到应用der格式的证书公钥及RSA算法来验签相关签名,PHP关于RSA算法不是很懂,手头上有Java和.net两种语言的实现,PHP实现甚感吃力. 小伙伴们的解答: 这个证书有他自己相应的编码,首先要找到这个,然后在用php读,设置对应的编码就好了.另外你如果是直接echo出证书内容的话,在那之前最好用<meta>标签编码一下,否则他其实没乱码,只是你浏览器无法识别而已.还要注意你php那个文件的编码哦~~ 直接读取当然是乱码了,der密钥证书本来就是二进制编码或者

PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]

substr --- 取得部份字符串 语法 : string substr (string string, int start [, int length]) 说明 : substr( )传回 string的一部份字符串,由参数 start和 length指定. 如果 start是正数,传回的字符串将会从 string的第 start个字元开始. Example : 复制代码 代码如下: <?php $rest = substr ("abcdef", 1); // returns

基于PHP导出Excel的小经验 完美解决乱码问题

我在PHP项目里要求把数据导出为Excel,并且数据中包含中文.网上大概了解一下可是使用PHPExcel,可是相对我的需求,这个框架太复杂了.于是还是想找找简单做法.网上发现其实最简单可以这样写,但问题是这种做法中文的编码不可靠.. 复制代码 代码如下: <?php  header("Content-type:application/vnd.ms-excel");  header("Content-Disposition:attachment;filename=expo

java基于poi导出excel透视表代码实例

这篇文章主要介绍了java基于poi导出excel透视表代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从前,我是一个前端程序猿,怀着对打通任(前)督(后)二(开)脉(发)的梦想转了后端,自学两礼拜java+spring全家桶,直接上项目实战.最近接到一需求:将业务数据导出一张透视表. 需求开发完成已近有一段时间了,甲方的大爷大妈,爷爷奶奶们也都用的很开心,我也很开心,于是就心想咱学了也不能白学,所以写下这篇随笔. 先看下用easypo

Python读取excel中的图片完美解决方法

excel中有图片是很常见的,但是通过python读取excel中的图片没有很好的解决办法. 网上找了一种很聪明的方法,原理是这样的: 1.将待读取的excel文件后缀名改成zip,变成压缩文件. 2.再解压这个文件. 3.在解压后的文件夹中,就有excel中的图片. 4.这样读excel中的图片,就变成了读文件夹中的图片了,和普通文件一样,可以做各种处理. 解压后的压缩包如下: python脚本如下: ''' File Name: readexcelimg Author: tim Date:

微信小程序完美解决scroll-view高度自适应问题的方法

第一种情况,scroll-view占据整屏 scroll-view { height: 100vh; } 第二种情况,scroll-view自适应页面剩余高度 xml文件 <view class="box"> <view class="box-head"></view> <scroll-view class="box-scroll"></scroll-view> </view>

PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法

PHP在本机可以正常导出Excel,在上Linux就提示ERR_EMPTY_RESPONSE,下面说一下怎么不降版本还能正常导出Excel,解决上面的问题. 使用导出Excel的时候显示错误页面提示如下,这时候发现上传Excel都可以正常读取数据,只是导出的时候不可以. 我这里使用的PHP版本是7.1.PHPExcel版本用的是1.8.1.github地址: https://github.com/PHPOffice/PHPExcel/tree/1.8.1.可以看到作者已经3年没更新过了. 将PH

基于apache poi根据模板导出excel的实现方法

需要预先新建编辑好一个excel文件,设置好样式. 编辑好输出的数据,根据excel坐标一一对应. 支持列表数据输出,列表中列合并. 代码如下: package com.icourt.util; import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.user

js基于FileSaver.js 浏览器导出Excel文件的示例

本文介绍了js基于FileSaver.js 浏览器导出Excel文件,分享给大家,也给自己做个笔记 限制一:不同浏览器对 blob 对象有不同的限制 具体看看下面这个表格(出自FileSaver.js): Browser Constructs as Filenames Max Blob Size Dependencies Firefox 20+ Blob Yes 800 MiB None Firefox < 20 data: URI No n/a Blob.js Chrome Blob Yes

ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】

本文实例讲述了ThinkPHP框架实现导出excel数据的方法.分享给大家供大家参考,具体如下: 在ThinkPHP框架下,导出excel数据的方法示例: 在操作前,应该在系统框架的扩展目录中添加ORG库,即要包含ThinkPHP\Extend\Library\ORG\Util\PHPExcel.class.php文件及其相关支持文件. <?php header("Content-type: text/html; charset=utf-8"); class MesTestAct

基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)

php导入到excel乱码是因为utf8编码在xp系统不支持所有utf8编码转码一下就完美解决了utf-8编码案例Php代码 复制代码 代码如下: <?php header("Content-Type: application/vnd.ms-excel; charset=UTF-8"); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: m

基于JS实现table导出Excel并保留样式

浏览器环境:谷歌浏览器 1.在导出Excel的时候,保存table的样式,有2种方法,①是在table的行内写style样式,②是在模板里面添加样式 2.第一种方式:行内添加样式 <td>公司一</td> 效果: 完整代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</