导航:首页 > 编程语言 > php是什么编码

php是什么编码

发布时间:2023-04-03 23:45:36

㈠ 如何用php设置utf-8编码

在你的源文件找到<meta http-equiv="content-type" content="text/html;charset=utf-8">charset= 后面接的就是编码,你全部改了就可以了。如果你改了之后变成乱码的话,那你就只能先建一个utf-8编码的网页,把相应的内容重新输入进去。

㈡ 请问 php 正则中的这些是什么编码呢

一:[\x81-\xfe]格式的正则:

$s=preg_replace('/^([\x81-\xfe][\x40-\xfe])*/','0',$neirong); 这里面的大多是日韩文字

二:x{4e00}格式的正则:

preg_match("/^[\x{4e00}-\x{9fa5}]{1,4}/u",$str); 这里面是匹配中文;

——————————————————————————
这些字符集尤其是日文字符集的各种字、标点以及特殊符号的时候有所帮助。
UTF8
[\x01-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}
UTF16
[\x00-\xd7][\xe0-\xff]|[\xd8-\xdf][\x00-\xff]{2}
JIS
[\x20-\x7e]|[\x21-\x5f]|[\x21-\x7e]{2}
SJIS
[\x20-\x7e]|[\xa1-\xdf]|([\x81-\x9f]|[\xe0-\xef])([\x40-\x7e]|[\x80-\xfc])
EUC_JP
[\x20-\x7e]|\x81[\xa1-\xdf]|[\xa1-\xfe][\xa1-\xfe]|\x8f[\xa1-\xfe]{2}
EUC_JP标点符号及特殊字符
[\xa1-\xa2][\xa0-\xfe]
EUC_JP全角数字
\xa3[\xb0-\xb9]
EUC_JP全角大写英文
\xa3[\xc1-\xda]
EUC_JP全角小写英文
\xa3[\xe1-\xfa]
EUC_JP全角平假名
\xa4[\xa1-\xf3]
EUC_JP全角片假名 [color=Red]2007-03-12 15:00更新[/color]
\xa3[\xb0-\xb9]|\xa3[\xc1-\xda]|\xa5[\xa1-\xf6][\xa3][\xb0-\xfa]|[\xa1][\xbc-\xbe]|[\xa1][\xdd]
EUC_JP全角汉字 [color=Red]2007-03-12 15:06更新[/color]
[\xb0-\xcf][\xa0-\xd3]|[\xd0-\xf4][\xa0-\xfe]|[\xB0-\xF3][\xA1-\xFE]|[\xF4][\xA1-\xA6]|[\xA4][\xA1-\xF3]|[\xA5][\xA1-\xF6]|[\xA1][\xBC-\xBE]
Big5
[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|[\xa1-\xfe])
GBK
[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]
GB2312汉字
[\xb0-\xf7][\xa0-\xfe]
GB2312半角标点符号及特殊符号
\xa1[\xa2-\xfe]
GB2312罗马数组及项目序号
\xa2([\xa1-\xaa]|[\xb1-\xbf]|[\xc0-\xdf]|[\xe0-\xe2]|[\xe5-\xee]|[\xf1-\xfc])
GB2312全角标点及全角字母
\xa3[\xa1-\xfe]
GB2312日文平假名
\xa4[\xa1-\xf3]
GB2312日文片假名
\xa5[\xa1-\xf6]
补充:
GB18030
[\x00-\x7f]|[\x81-\xfe][\x40-\xfe]|[\x81-\xfe][\x30-\x39][\x81-\xfe][\x30-\x39]
[color=Red]2007-03-12 21:35 补充[/color]
日文半角空格
\x20
SJIS全角空格
(?:\x81\x81)
SJIS全角数字
(?:\x82[\x4f-\x58])
SJIS全角大写英文
(?:\x82[\x60-\x79])
SJIS全角小写英文
(?:\x82[\x81-\x9a])
SJIS全角平假名
(?:\x82[\x9f-\xf1])
SJIS全角平假名扩展
(?:\x82[\x9f-\xf1]|\x81[\x4a\x4b\x54\x55])
SJIS全角片假名
(?:\x83[\x40-\x96])
SJIS全角片假名扩展
(?:\x83[\x40-\x96]|\x81[\x45\x5b\x52\x53])
EUC_JP全角空格
(?:\xa1\xa1)
EUC半角片假名
(?:\x8e[\xa6-\xdf])

——————————————————————————

下面是utf-8编码的例子:
$str = "汉字";
if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {
print("该字符串全部是中文");
} else {
print("该字符串不全部是中文");
}

下面的例子包含gbk,gb2312的例子:

<?php
$action = trim($_GET['action']);
if($action == "sub")
{
$str = $_POST['dir'];
//if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312汉字字母数字下划线正则表达式
if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str)) //UTF-8汉字字母数字下划线正则表达式
{
echo "<font color=red>您输入的[".$str."]含有违法字符</font>";
}
else
{
echo "<font color=green>您输入的[".$str."]完全合法,通过!</font>";
}
}
?>

㈢ 什么是PHP编码

PHP程序设计中中文编码问题曾经困扰很多人,导致这个问题的原因其实很简单,每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的扩展ASCII码,中国的GB2312-80,日本的JIS等。作为该国家/区域内信息处理的基础,字符编码集起着统一编码的重要作用。字符编码集按长度分为SBCS(单字节字符集),DBCS(双字节字符集)两大类。早期的软件(尤其是操作系统),为了解决本地字符信息的计算机处理,出现了各种本地化版本(L10N),为了区分,引进了LANG,Codepage等概念。但是由于各个本地字符集代码范围重叠,相互间信息交换困难;软件各个本地化版本独立维护成本较高。因此有必要将本地化工作中的共性抽取出来,作一致处理,将特别的本地化处理内容降低到最少。这也就是所谓的国际化(118N)。各种语言信息被进一步规范为Locale信息。处理的底层字符集变成了几乎包含了所有字形的 Unicode。

现在大部分具有国际化特征的软件核心字符处理都是以Unicode为基础的,在软件运行时根据当时的ocale/Lang /Codepage设置确定相应的本地字符编码设置,并依此处理本地字符。在处理过程中需要实现Unicode和本地字符集的相互转换,甚或以 Unicode为中间的两个不同本地字符集的相互转换。这种方式在网络环境下被进一步延伸,任何网络两端的字符信息也需要根据字符集的设置转换成可接受的内容。

数据库中的字符集编码问题

流行的关系数据库系统都支持数据库字符集编码,也就是说在创建数据库时可以指定它自己的字符集设置,数据库的数据以指定的编码形式存储。当应用程序访问数据时,在入口和出口处都会有字符集编码的转换。对于中文数据,数据库字符编码的设置应当保证数据的完整性。GB2312、GBK、UTF-8等都是可选的数据库字符集编码;当然我们也可以选择ISO8859-1(8-bit),只是我们得在应

用程序写数据之前先将16Bit的一个汉字或Unicode拆分成两个8-bit的字符,读数据之后也需要将两个字节合并起来,同时还要判别其中的SBCS 字符,因此我们并不推荐采用ISO8859-1作为数据库字符集编码。这样不但没有充分利用数据库自身的字符集编码支持,而且同时也增加了编程的复杂度。编程时,可以先用数据库管理系统提供的管理功能检查其中的中文数据是否正确。

PHP程序在查询数据库之前,首先执行 mysql_query("SETNAMESxxxx");其中xxxx是你网页的编码(charset=xxxx),如果网页中 charset=utf8,则xxxx=utf8,如果网页中charset=gb2312,则xxxx=gb2312,几乎所有WEB程序,都有一段连接数据库的公共代码,放在一个文件里,在这文件里,加入mysql_query("SETNAMESxxxx")就可以了。

SETNAMES 显示客户端发送的SQL语句中使用什么字符集。因此,SETNAMES'utf-8'语句告诉服务器“将来从这个客户端传来的信息采用字符集utf- 8”。它还为服务器发送回客户端的结果指定了字符集(例如,如果你使用一个SELECT语句,它表示列值使用了什么字符集)。

定位问题时常用的技巧

定位中文编码问题通常采用最笨的也是最有效的办法―在你认为有嫌疑的程序处理后打印字符串的内码。通过打印字符串的内码,你可以发现什么时候中文字符被转换成Unicode,什么时候Unicode被转回中文内码,什么时候一个中文字成了两个Unicode字符,什么时候中文字符串被转成了一串问号,什么时候中文字符串的高位被截掉了……

取用合适的样本字符串也有助于区分问题的类型。如:"aa啊aa?@aa"等中英相间,GB、GBK特征字符均有的字符串。一般来说,英文字符无论怎么转换或处理,都不会失真(如果遇到了,可以尝试着增加连续的英文字母长度)。

解决各种应用的乱码问题

1)使用标签设置页面编码

这个标签的作用是声明客户端的浏览器用什么字符集编码显示该页面,xxx可以为GB2312、GBK、UTF-8(和MySQL不同,MySQL是 UTF8)等等。因此,大部分页面可以采用这种方式来告诉浏览器显示这个页面的时候采用什么编码,这样才不会造成编码错误而产生乱码。但是有的时候我们会发现有了这句还是不行,不管xxx是哪一种,浏览器采用的始终都是一种编码,这个情况我后面会谈到。

请注意,是属于HTML信息的,仅仅是一个声明,仅表明服务器已经把HTML信息传到了浏览器。

2)header("content-type:text/html;charset=xxx");

这个函数header()的作用是把括号里面的信息发到http标头。如果括号里面的内容为文中所说那样,那作用和标签基本相同,大家对照第一个看发现字符都差不多的。但是不同的是如果有这段函数,浏览器就会永远采用你所要求的xxx编码,绝对不会不听话,因此这个函数是很有用的。为什么会这样呢?那就得说说http标头和HTML信息的差别了:

http标头是服务器以http协议传送HTML信息到浏览器前所送出的字串。而标签是属于 HTML信息的,所以header()发送的内容先到达浏览器,通俗点就是header()的优先级高于(不知道可不可以这样讲)。假如一个php页面既有header("content-type:text/html;charset=xxx"),又有,浏览器就只认前者http标头而不认meta了。当然这个函数只能在php页面内使用。

同样也留有一个问题,为什么前者就绝对起作用,而后者有时候就不行呢?这就是接下来要谈的Apache的原因了。

3)AddDefaultCharset

Apache根目录的conf文件夹里,有整个Apache的配置文档httpd.conf。

用文本编辑器打开httpd.conf,第708行(不同版本可能不同)有AddDefaultCharsetxxx,xxx为编码名称。这行代码的意思:设置整个服务器内的网页文件http标头里的字符集为你默认的xxx字符集。有这行,就相当于给每个文件都加了一行header("content- type:text/html;charset=xxx")。这下就明白为什么明明设置了是utf-8,可浏览器始终采用gb2312的原因。

如果网页里有header("content-type:text/html;charset=xxx"),就把默认的字符集改为你设置的字符集,所以这个函数永远有用。如果把AddDefaultCharsetxxx前面加个"#",注释掉这句,而且页面里不含header("content- type…"),那这个时候就轮到meta标签起作用了。

下面列出以上的优先顺序:

..header("content-type:text/html;charset=xxx")

..AddDefaultCharsetxxx

..

如果你是web程序员,建议给你的每个页面都加个header("content-type:text/html;charset=xxx"),这样就可以保证它在任何服务器都能正确显示,可移植性也比较强。

4)php.ini中的default_charset配置:

php.ini中的default_charset="gb2312"定义了php的默认语言字符集。一般推荐注释掉此行,让浏览器根据网页头中的charset来自动选择语言而非做一个强制性的规定,这样就可以在同台服务器上提供多种语言的网页服务。

结束语 参考:http://wsiyu.com/read.php?tid=1561

其实php开发中的中文编码并没有想象的那么复杂,虽然定位和解决问题没有定规,各种运行环境也各不尽然,但后面的原理是一样的。了解字符集的知识是解决字符问题的基础。不过,随着中文字符集的变化,不仅仅是php编程,中文信息处理中的问题还是会存在一段时间的。

㈣ php euc-cn什么编码

php中用mb_detect_encoding测出来的euc-cn是gb2312编码:
EUC-CN是GB2312最常用的表示方法。浏览器编码表上的“GB2312”扮激,通常都是指“EUC-CN”表示茄缺罩法。颤闹

㈤ 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是没有国家的编码,也就是独立于任何一种语言,任何语言都可以使用的。

(5)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

㈥ 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;
}
?>

㈦ 怎样设置php的编码格式为utf-8

在 PHP 编写过程中,一般需要注意的是三种编码:
1、网页字符编码
2、文件字符编码
3、数据库字符编码
只有上面3种编码的格式都一致的情况下,才会尽可能的避免乱码的出现。
二、如何使用Notepad++软件设置UTF-8编码:
用 Notepad++ 软件打开指定的 php 文档后,在“格式”菜单下找到“以UTF-8格式编码"
以xxx编码的意思是不强制转换文件的编码,仅仅以某种编码来查看,不会对文件进行修改,这对打开某个文件发现都是乱码时非常实用。
转为xxx编码的意思就是将文件内容强制转换为某种编码,这对于本来看到的就不是乱码但需要调整右下角的文件编码时非常好用。

㈧ 如何把php文件编码更改为utf-8

与 php 编码有关的,有两处地方:


1、php 文件本身的编码格式:

根据使用 php 编写软件的不同,其操作方法有所区别,比如 phpDesigher 软件:


<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>

㈨ php设置编码的头文件怎样写

php设置编码默认就是utf8编码

utf编码 :header("Content-type: text/html; charset=utf-8");

gbk编码 :header("Content-type: text/html; charset=gb2312");

big5编改枝核码 :header("Content-type: text/html; charset=big5");

注意事项:通常情况以上代码放在php页面的首页。

(9)php是什么编码扩展阅读:

PHP优势

1.开放的源代码:所有的PHP源代码事实上都可以得到。

2.免费的:和其它技术相比,PHP本身免费且是开源代码。

3.快捷性:程序开发快,运行快,技术本身学习快。

4.跨平台性强:PHP是运行在服务器搭迹端的脚本,可运行在UNIX、LINUX、WINDOWS、Mac OS下。

5.效率高:PHP消耗相当少的系统资源。

6.图像处理:用PHP动态创建图像。

7.面向对象:在php4,php5中,面向对象方面都有了很大的改进,php完全可以用核掘来开发大型商业程序。

8.专业专注:PHP支持脚本语言为主,同为类C语言。


阅读全文

与php是什么编码相关的资料

热点内容
linuxsftp连接 浏览:934
光伏日发电量算法 浏览:125
小肚皮app怎么才有vip 浏览:616
php全角转换半角 浏览:927
java字符序列 浏览:539
杭州编译分布式存储区块链 浏览:575
材料压缩曲线 浏览:247
linux命令排序 浏览:151
手机热点加密为啥连接不上电脑 浏览:979
编译器合并计算 浏览:959
android音频曲线 浏览:343
linuxftp自动登录 浏览:802
运行编译后网页 浏览:70
阅读app怎么使用 浏览:319
centos防火墙命令 浏览:432
命令行变更 浏览:332
linux设备和驱动 浏览:207
加密货币骗局破案 浏览:345
cc特征码加密 浏览:775
清空dns缓存命令 浏览:295