本文目录一览:
- 1、PHP如何获取中文字符串长度 utf8
- 2、PHP如何获取一个字符串的UTF-8编码
- 3、PHP中如何把一个字符串转换为utf-8编码的 ?如题 谢谢了
- 4、在php中,怎样把字符串转为UTF-8字节数组
- 5、php 截取utf-8格式的字符串实例代码
- 6、怎样设置php的编码格式为utf-8
PHP如何获取中文字符串长度 utf8
PHP对中文字符串的处理一直困扰于刚刚接触PHP开发的新手程序员。下面简要的剖析一下PHP对中文字符串长度的处理:
PHP自带的函数如strlen()、mb_strlen()都是通过计算字符串所占字节数来统计字符串长度的,一个英文字符占1字节。例:
$enStr = ‘Hello,China!’;
echo strlen($enStr); // 输出:12
而中文则不然,做中文网站一般会选择两种编码:gbk/gb2312或是utf-8。utf-8能兼容更多的字符,所以受到很多站长的喜爱。gbk与utf-8对中文的编码不同,导致中文在gbk与utf-8编码下所占字节也有差异。
gbk编码下每个中文字符所占字节为2,例:
$zhStr = ‘您好,中国!’;
echo strlen($zhStr); // 输出:12
utf-8编码下每个中文字符所占字节为3,例:
$zhStr = ‘您好,中国!’;
echo strlen($zhStr); // 输出:18
那么如何计算这组中文字符串的长度呢?有人可能会说gbk下获取中文字符串长度除以2,utf-8编码下除以3不就行了吗?但是您要考虑字符串并不老实,99%的情况会以中英混合的情况出现。
这是WordPress中的一段代码,主要思想就是先用正则将字符串分解为个体单元,然后再计算单元的个数即字符串的长度,代码如下(只能处理utf-8编码下的字符串):
$zhStr = ‘您好,中国!’;
$str = ‘Hello,中国!’;
// 计算中文字符串长度
function utf8_strlen($string = null) {
// 将字符串分解为单元
preg_match_all(“/./us”, $string, $match);
// 返回单元个数
return count($match[0]);
}
echo utf8_strlen($zhStr); // 输出:6
echo utf8_strlen($str); // 输出:9
PHP如何获取一个字符串的UTF-8编码
foreach(unpack(
'n*',
mb_convert_encoding('你好', 'unicode', 'gbk')
) as $i) {
echo '\u',dechex($i);
}
另,你这里的“\u60a8\u597d”其实是unicode编码,而不是utf-8编码
PHP中如何把一个字符串转换为utf-8编码的 ?如题 谢谢了
1、把 GBK 编码字串转换成 UTF-8 编码字串 view plaincopy to clipboardprint? ?php header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("你是我的好朋友","UTF-8","GBK"); ? 2、把 UTF-8 编码字串转换成 GB2312 编码字串 view plaincopy to clipboardprint? // 注意将此文件存盘成 utf-8 编码格式文件再测试 ?php header("content-Type:text/html;charset=gb2312"); echo mb_convert_encoding("你是我的好朋友","gb2312","utf-8"); ? // 注意将此文件存盘成 utf-8 编码格式文件再测试 ?php header("content-Type: text/html; charset=gb2312"); echo mb_convert_encoding("你是我的好朋友","gb312","utf-8"); ? 3、对整个页面进行转换 该方法适用所有编码环境。这样把前128个字符以外(显示字符)的字符集都用 NCR(Numeric character reference,如“汉字”将转换成“汉字”这种形式)来表示,这样的编码在任意编码环境下页面都能正常显示。 在php文件的头部加上下面三行代码: view plaincopy to clipboardprint? mb_internal_encoding(”gb2312″); // 这里的gb2312是你网站原来的编码 mb_http_output(”HTML-ENTITIES”); ob_start(’mb_output_handler’); mb_internal_encoding(”gb2312″); // 这里的gb2312是你网站原来的编码 mb_http_output(”HTML-ENTITIES”); ob_start(’mb_output_handler’); 使用mb_convert_encoding 函数需启用PHP 的mbstring (multi-byte string)扩展
在php中,怎样把字符串转为UTF-8字节数组
设置编码utf-8
mysql_query('set
names
utf8');
或者是
header("content-type:
text/html;
charset=utf-8");
这个放在头部(之前不能有输出)
php 截取utf-8格式的字符串实例代码
php
截取utf-8格式的字符串
php中,我们经常需要截取字符串。英文字符占用一个字节,中文字符占用两个字节,但中文字符占用两个字节是相对于GBK编码而言但是在时下国际流行的UTF8编码中,一个中文字符占用3个字节。本文章向大家介绍一个php
截取utf-8格式字符串的函数。
举例说明:
function
truncate_utf8_string($string,
$length,
$etc
=
'...')
{
$result
=
'';
$string
=
html_entity_decode
(
trim
(
strip_tags
(
$string
)
),
ENT_QUOTES,
'UTF-8'
);
$strlen
=
strlen
(
$string
);
for($i
=
0;
(($i
$strlen)
($length
0));
$i
++)
{
if
($number
=
strpos
(
str_pad
(
decbin
(
ord
(
substr
(
$string,
$i,
1
)
)
),
8,
'0',
STR_PAD_LEFT
),
'0'
))
{
if
($length
1.0)
{
break;
}
$result
.=
substr
(
$string,
$i,
$number
);
$length
-=
1.0;
$i
+=
$number
-
1;
}
else
{
$result
.=
substr
(
$string,
$i,
1
);
$length
-=
0.5;
}
}
$result
=
htmlspecialchars
(
$result,
ENT_QUOTES,
'UTF-8'
);
if
($i
$strlen)
{
$result
.=
$etc;
}
return
$result;
}
如果需要截取utf-8格式的字符串,直接调用这个函数即可。
?php
$str="如果需要截取utf-8格式的字符串,直接调用这个函数即可。";
echo
truncate_utf8_string($str,10);//输出结果:如果需要截取utf-8格...
?
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
怎样设置php的编码格式为utf-8
在 PHP 编写过程中,一般需要注意的是三种编码:
1、网页字符编码
2、文件字符编码
3、数据库字符编码
只有上面3种编码的格式都一致的情况下,才会尽可能的避免乱码的出现。
二、如何使用Notepad++软件设置UTF-8编码:
用 Notepad++ 软件打开指定的 php 文档后,在“格式”菜单下找到“以UTF-8格式编码"
以xxx编码的意思是不强制转换文件的编码,仅仅以某种编码来查看,不会对文件进行修改,这对打开某个文件发现都是乱码时非常实用。
转为xxx编码的意思就是将文件内容强制转换为某种编码,这对于本来看到的就不是乱码但需要调整右下角的文件编码时非常好用。