php生成二维码时出现中文乱码的解决方法


Posted in PHP onDecember 18, 2014

本文实例讲述了php生成二维码时出现中文乱码的解决方法。分享给大家供大家参考。具体分析如下:

最近做了个扫描二维码得到vcard的项目,遇到一个问题,有一部分生成完的二维码,用android系统手机扫描后得到的vcard中的中文姓名是乱码,经过比对发现,这部分vcard中ORG这个类型没有内容,随即判断没内容就加上一个固定的字符串,这样乱码的问题得以解决.

php生成二维码的几种方式

1.google开放api,代码如下:

$urlToEncode="https://3water.com"; 

generateQRfromGoogle($urlToEncode); 

function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0') 

{ 

$url = urlencode($url); 

echo ''; 

}

2.php类库PHP QR Code

地址:http://phpqrcode.sourceforge.net/

下载:http://sourceforge.net/projects/phpqrcode/

用例,代码如下:

# 创建一个二维码文件

QRcode::png('code data text', 'filename.png');

# 生成图片到浏览器

QRcode::png('some othertext 1234');

3.libqrencode

地址:http://fukuchi.org/works/qrencode/index.en.html

4.QRcode Perl CGI & PHP scripts

地址:http://www.swetake.com/qr/qr_cgi.html

第2种方法中在二维码中间加上logo,修改phpqrcode.php中的QRimage类里的png方法,代码如下:

public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4, $saveandprint=FALSE, $mergePic='') 

{ 

$image = self::image($frame, $pixelPerPoint, $outerFrame); 

if($mergePic) { 

$im = imagecreatefrompng($mergePic); 

$w = imagesx($im); 

$h = imagesy($im); 

ImageAlphaBlending($image, true); 

ImageAlphaBlending($im, true); 

$qrw = (imagesx($image)-$w)/2; 

$qrh = (imagesy($image)-$h)/2; 

imagecopy($image, $im, $qrw, $qrh, 0, 0, $w, $h); 

imagedestroy($im); 

} 

if ($filename === false) { 

Header("Content-type: image/png"); 

ImagePng($image); 

} else { 

ImagePng($image, $filename); 

if($saveandprint===TRUE){ 

header("Content-type: image/png"); 

ImagePng($image); 

} 

} 

ImageDestroy($image); 

}

PS:感兴趣的朋友还可参考本站二维码工具:http://tools.3water.com/transcoding/3waterqrcode

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

PHP 相关文章推荐
PHP 缓存实现代码及详细注释
May 16 PHP
从php核心代码分析require和include的区别
Jan 02 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
Jun 02 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
PHP网络操作函数汇总
May 18 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
Feb 27 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
Nov 05 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
Jun 16 PHP
PHP7引入的"??"和"?:"的区别讲解
Apr 08 PHP
Laravel 6.2 中添加了可调用容器对象的方法
Oct 22 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 #PHP
php可生成缩略图的文件上传类实例
Dec 17 #PHP
php提示Failed to write session data错误的解决方法
Dec 17 #PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 #PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
Dec 17 #PHP
apache中为php 设置虚拟目录
Dec 17 #PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 #PHP
You might like
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
php时间函数用法分析
2016/05/28 PHP
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
JavaScript动态创建link标签到head里的方法
2014/12/22 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
cocos2dx骨骼动画Armature源码剖析(三)
2015/09/08 Javascript
AngularJS表单提交实例详解
2017/02/18 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
详解使用Next.js构建服务端渲染应用
2018/07/10 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
JQuery样式与属性设置方法分析
2019/12/07 jQuery
vue2路由基本用法实例分析
2020/03/06 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
vue 解决uglifyjs-webpack-plugin打包出现报错的问题
2020/08/04 Javascript
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
Python中关于浮点数的冷知识
2019/09/22 Python
python设置表格边框的具体方法
2020/07/17 Python
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
DTD的含义以及作用
2014/01/26 面试题
高中军训感言600字
2014/03/11 职场文书
小学生环保标语
2014/06/13 职场文书
企业授权委托书范本
2014/09/22 职场文书
家庭贫困证明
2014/09/23 职场文书
2014年教研组工作总结
2014/11/26 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
2015入党自传格式范文
2015/06/26 职场文书
分享几种python 变量合并方法
2022/03/20 Python
Redis实现分布式锁的五种方法详解
2022/06/14 Redis