当前位置:首页 » 编程语言 » php对字符编码

php对字符编码

发布时间: 2022-05-10 22:25:52

A. php使用gbk字符编码时,无法映射某些字符

具体如下:
在pom.xml文件的如下内容中,添加encoding节点。
添加UTF-8.然后再去编译,先前的报错问题没了。超文本预处理器是一种通用编程语言,最初是为了进行网页开发而设计的。它最初是由拉斯马斯·勒德尔夫在1994年创建的。PHP引用现在是由The PHP Group实现的。PHP最初是个人主页的缩写,但现在它是一个首字母递归型缩略词,全称为Hypertext Preprocessor,即超文本预处理器。

B. 如何用 PHP 搞定中文字符编码问题

在PHP文件开头写上这一句:
header('Content-type:text/html; charset=utf-8'); 基本上都能解决中文字符编码问题,如果是数据库的原因,那在数据库连接的时候也要设置编码mysqli_set_charset('set names utf8');

C. PHP中哪个函数可以强制统一设置所有字符编码为指定编码

一般都是utf-8和gbk,gbk的一般没有什么问题。
utf-8最好在apache服务端就设定为utf-8。然后其他的地方,数据库、文件都设置为UTF-8,就不会有错了。
在php函数库有一个函数:iconv(),iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库。
最近在做一个小偷程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错。

php编程技术:
PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。 PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。

D. PHP的字符编码17符号代替问题,怎么解决

近日,公司的论坛管理员发了一个帖子链接给我,说标题修改以后和实际的显示不一样。我打开之后发现,原始标题为:“手贱洗包浆,洗洗更健康”,但在title显示成了 “手贱洗包浆,洗洗更降”。

于是乎,在本地测试环境下进行了编辑测试未发现异常,服务器上对其它帖子也进行了编辑保存也为发现问题。

看来需要跟踪一下源代码了,发现上面的标题在执行了一下代码之后发生了变化:

1 $thread['subject'] = str_replace("【",'',$thread['subject']);

2 $thread['subject'] = str_replace("】",'',$thread['subject']);

至此,可以肯定问题出在了这里,然而到底是什么问题导致的呢,初步考虑是

1,服务器环境有问题

2,编码处理不一致

经过多个服务器环境测试后,发现问题依旧,可以排除服务器因素

之后测试编码处理,先将要替换的字符和查询的字符串转成UTF-8编码,之后进行替换测试发现问题不存在了。

于是修正上面的代码为:

1 $rep1 = iconv('GBK', 'UTF-8', "【");

2 $rep2 = iconv('GBK', 'UTF-8', "】");

3 $thread['subject'] = iconv('GBK', 'UTF-8', $thread['subject']);

4 $thread['subject'] = str_replace(array($rep1, $rep2),array('',''), $thread['subject']);

5 $thread['subject'] = iconv('UTF-8', 'GBK', $thread['subject']);

解决问题。

终极问题分析:

由于计算机是基于二进制代码运行的,因此php在执行替换的时候也是将非ASCII字符转成了ASCII编码之后进行查找替换,使用十六进制工具查看这些字符的二进制情况,结果如下:

【 的十六进制为 A1 BE

的十六进制为 A1 BF

健康的十六进制为 BD A1 BF B5

降的十六进制为 BD B5

通过以上的十六进制数据不难发现,健康的ASCII码里面正好存在】的ASCII码,于是被替换,留下了降的ASCII码。

由此可知,在字符串查找替换的时候,如果是非ASCII编码字符串很容易出现这种问题,通过转码到UTF8或者Unicode编码能否彻底的解决此问题还有待考证!

E. php对字符串转换编码后,在不同浏览器里面显示的为何不一样,有的是乱码求良方~

你好
乱码问题分为好几种情况
大部分情况下是编码不统一造成的
以utf-8为例
1、网页格式(在浏览器页面单击
右键——编码——
utf-8
)
2、数据库字符集(在你用到的数据库上点右键——数据库属性——选择utf8(UTF-8
Unicode)
3、数据库表问题(以mysql为例
选定你取数据的表
右键——设计表——选定你的字段看下方的字符集一栏是不是UTF-8)
4、取数据问题(在你的数据库连接文件中写入:mysql_query("set
names
utf8");)
5、网页制作时错误(以dreamweaver为例,打开你的页面,单击最上面的修改——页面属性
——标题/编码——在编码那一列选择UTF-8)
(注:以上问题调好后如果还有乱码
就把你的页面中文内容重新输入一遍)

F. php怎样判断字符串是什么编码

php判断字符编码的二个方法:
一个是用php自带的函数mb_detect_encoding,一个是个人写函数来处理。
方法1,使用mb_detect_encoding函数。
?

1
2
3
4

<?php
$str=”<a href="http://www..com/" target="_blank" class="infotextkey">脚本</a>”;
echo mb_detect_encoding($str);
?>

方法2,自定义函数。
?

1
2
3
4
5
6
7
8
9
10
11

<?php
function chkbm($string){
$bm = array(‘ASCII’, ‘GBK’, ‘UTF-8′);
foreach($bm as $c){
if( $string === <a href="http://www..com/" target="_blank" class="infotextkey">iconv</a>(‘UTF-8′, $c, iconv($c, ‘UTF-8′, $string))){//转换编码后是不是相等
return $c;
}
}
return null;
}
?>

G. php 字符编码问题

做php最好是编码统一, 页面utf8, 数据库gb2312, 这样做,除了难为你自己还有别的好处吗?
如果你非要这么做, 那你必须将$name11="张三" 转成gb2312编码, 然后读取出来显示到页面的时候, 必须转成utf8, 不累的慌?

H. php 怎样判断字符串是哪种编码

php中有个函数可以用来检查当前字符串的编码类型
mb_detect_encoding($str,array('ASSCII',''GB2312','UTF-8));
PHP用MBString库的函数
$e=mb_detect_encoding($text, array('UTF-8', 'GBK'));
switch($e){
case 'UTF-8' : //如果是utf8编码
break;
case ‘GBK’: //如果是gbk编码
break
}

I. 浅析PHP中的字符串编码转换(自动识别原编码)

本篇文章是对PHP中字符串编码转换的实现代码进行了详细的分析介绍,需要的朋友参考下

复制代码
代码如下:
/**
*
对数据进行编码转换
*
@param
array/string
$data
数组
*
@param
string
$output
转换后的编码
*/
function
array_iconv($data,$output
=
'utf-8')
{
$encode_arr
=
array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP');
$encoded
=
mb_detect_encoding($data,
$encode_arr);//自动判断编码
if
(!is_array($data))
{
return
mb_convert_encoding($data,
$output,
$encoded);
}
else
{
foreach
($data
as
$key=>$val)
{
if(is_array($val))
{
$data[$key]
=
array_iconv($val,
$input,
$output);
}
else
{
$data[$key]
=
mb_convert_encoding($data,
$output,
$encoded);
}
}
return
$data;
}
}

J. php怎么设置编码

header("Content-type: text/html; charset=utf-8");
另外你的编辑器编码也要对应哦

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。

最近需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错。解决方法很简单,就是在 需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后,如下:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

热点内容
安卓手机九宫格忘记密码怎么解 发布:2025-05-11 05:00:30 浏览:594
安卓手机拼多多怎么解绑银行卡 发布:2025-05-11 05:00:25 浏览:685
校园网可以搭建服务器地址 发布:2025-05-11 04:54:40 浏览:784
noip算法 发布:2025-05-11 04:53:51 浏览:50
有什么我的世界服务器启动器 发布:2025-05-11 04:50:41 浏览:295
写shell脚本 发布:2025-05-11 04:37:41 浏览:935
电脑服务器打开有什么用 发布:2025-05-11 04:36:49 浏览:98
sqlserver2008查询时间 发布:2025-05-11 04:15:28 浏览:386
安卓孤胆车神被封号怎么解封 发布:2025-05-11 04:05:22 浏览:940
高压洗车泡沫怎么配置 发布:2025-05-11 04:00:47 浏览:547