我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

如何使用PHP转换为utf8:首先不需要考虑[4-6]字节编码; 那么如果出现四个字节以上的[utf-8]字符,可以直接当成乱码忽略,或者转换成实体形式就可以了,代码是[$ = "{$c};"]。

unicode utf8 php_unicode utf8 php_unicode utf8 php

如何使用php转换为utf8:

编码是实现utf-8和gb系列编码(、gbk、)之间转换的基础。 虽然我们也可以直接从utf-8到这些编码做一个对照表,但是很少有人会这么做,因为utf-8可以变量编码是不确定的,所以一般都是用gb编码的对照表。 (UCS-2)实际上是utf-8的基本编码,utf-8只是它的一种实现。 两者存在如下对应关系:

由于目前UTF-8中使用的字符都是UCS-2中的,因此无需考虑4-6字节编码。 同样,在逆向转换时,如果有超过四个字节的UTF-8字符可以直接忽略为乱码或者转换成实体形式(“long int;”形式),然后交给浏览器或者相关解析程序进行加工。 使用PHP转换为UTF-8编码的算法如下:

/*
 * 参数 $c 是unicode字符编码的int类型数值,如果是用二进制读取的数据,在php中通常要用 hexdec(bin2hex( $bin_unichar )) 这样转换
 */
function uni2utf8( $c )
{
  if ($c < 0x80)
  {
        $utf8char = chr($c);
  }
  else if ($c < 0x800)
  {
        $utf8char = chr(0xC0 | $c >> 0x06).chr(0x80 | $c & 0x3F);
  }
  else if ($c < 0x10000)
  {
        $utf8char = chr(0xE0 | $c >> 0x0C).chr(0x80 | $c >> 0x06 & 0x3F).chr(0x80 | $c & 0x3F);
  }
  //因为UCS-2只有两字节,所以后面的情况是不可能出现的,这里只是说明unicode HTML实体编码的用法。
  else
  {
        $utf8char = "&#{$c};";
  }
  return $utf8char;
}

在当前环境范围内,可以认为utf-8字符集==(UCS-2),但理论上,主要字符集关系的包含关系如下:

utf-8 > unicode(UCS-2) > gb18030 > gbk > gb2312

因此,如果编码正确:

gb2312 => gbk => gb18030 => unicode(UCS-2) => utf-8

这样的变换过程基本上是无损的,但相反,由于

utf-8 => unicode(UCS-2) => gb18030=> gbk => gb2312

在这样的转换过程中,很有可能会出现无法识别的字符。 因此,如果系统使用UTF-8编码,尽量不要轻易进行逆向编码操作。

相关学习推荐:PHP编程从入门到熟练

二维码
扫一扫在手机端查看

本文链接:https://by928.com/119.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线