<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>潘锦的空间 &#187; UTF-8编码</title>
	<atom:link href="https://www.phppan.com/tag/utf-8%e7%bc%96%e7%a0%81/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.phppan.com</link>
	<description>SaaS SaaS架构 团队管理 技术管理 技术架构 PHP 内核 扩展 项目管理</description>
	<lastBuildDate>Sun, 12 Apr 2026 03:47:23 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>UTF-8编码的前世今生</title>
		<link>https://www.phppan.com/2011/04/utf8/</link>
		<comments>https://www.phppan.com/2011/04/utf8/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 01:03:33 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[程序相关]]></category>
		<category><![CDATA[Unicode]]></category>
		<category><![CDATA[UTF-8编码]]></category>
		<category><![CDATA[识别UTF-8]]></category>

		<guid isPermaLink="false">http://www.phppan.com/?p=1342</guid>
		<description><![CDATA[这个标题有点标题党了，其实我想写的是UTF-8编码的一些概况，以及如何使用PHP识别UTF-8编码和PHP对U [&#8230;]]]></description>
				<content:encoded><![CDATA[<p style="text-indent: 2em;">这个标题有点标题党了，其实我想写的是UTF-8编码的一些概况，以及如何使用PHP识别UTF-8编码和PHP对UTF-8编码的支持。 文章的目的只是为了理清原本不清楚的概念，完善知识体系。</p>
<h2 style="font-weight: bold; font-family: 'Microsoft YaHei', Helvetica, Arial, sans-serif; font-size: 1.2em; color: #333333;">概述</h2>
<p style="text-indent: 2em;">在不远的曾经，如果应用需要支持国际化(i18n),则需要应用程序能够使用不同的字符集和编码输入、存储和输出数据。 不同的字符集都可以展现和编码定义好的字符，但是一个字符集不能使用另一个字符集来显示。 当人们受不了这种不兼容时，人们开始考虑使用一种标准的字符集和编码来统一这个世界。 于是，在1991年，<a style="color: #1299da; text-decoration: underline;" href="http://zh.wikipedia.org/wiki/Unicode">Unicode</a>产生了。 它涵盖了所有已知的可写语言的所有字符的字符集。而UTF-8编码只是UNICODE的一种变长度的编码表达方式。</p>
<p style="text-indent: 2em;">维基百科中对于<a style="color: #1299da; text-decoration: underline;" href="http://zh.wikipedia.org/wiki/UTF-8">UTF-8编码</a>的解释是： UTF-8（8-bit Unicode Transformation Format）是一种针对Unicode的可变长度字符编码（定长码）， 也是一种前缀码。它可以用来表示Unicode标准中的任何字符，且其编码中的第一个字节仍与ASCII兼容， 这使得原来处理ASCII字符的软件无须或只须做少部份修改，即可继续使用。</p>
<p style="text-indent: 2em;">UTF-8适用于紧凑地存储拉丁字母。UTF-8编码的一个优点是它可以编码成字节流，这样可以将透明化底层的体系架构。</p>
<p style="text-indent: 2em;">UTF-8字节布局</p>
<table style="border-collapse: collapse;" border="0">
<tbody>
<tr>
<th style="background-color: #dcdcdc; padding: 5px; border: 1px solid #aaaaaa;">字节数</th>
<th style="background-color: #dcdcdc; padding: 5px; border: 1px solid #aaaaaa;">位数</th>
<th style="background-color: #dcdcdc; padding: 5px; border: 1px solid #aaaaaa;">UTF-8字节流</th>
</tr>
<tr>
<td style="padding: 5px; border: 1px solid #aaaaaa;">1</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">7</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">0xxxxxxx</td>
</tr>
<tr>
<td style="padding: 5px; border: 1px solid #aaaaaa;">2</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">11</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">110xxxxx 10xxxxxx</td>
</tr>
<tr>
<td style="padding: 5px; border: 1px solid #aaaaaa;">3</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">16</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">1110xxxx 10xxxxxx 10xxxxxx</td>
</tr>
<tr>
<td style="padding: 5px; border: 1px solid #aaaaaa;">4</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">21</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">11110xxx 10xxxxxx 10xxxxxx 10xxxxxx</td>
</tr>
<tr>
<td style="padding: 5px; border: 1px solid #aaaaaa;">5</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">26</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx</td>
</tr>
<tr>
<td style="padding: 5px; border: 1px solid #aaaaaa;">6</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">31</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx</td>
</tr>
<tr>
<td style="padding: 5px; border: 1px solid #aaaaaa;">7</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">36</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">11111110 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx</td>
</tr>
<tr>
<td style="padding: 5px; border: 1px solid #aaaaaa;">8</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">42</td>
<td style="padding: 5px; border: 1px solid #aaaaaa;">11111111 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx</td>
</tr>
</tbody>
</table>
<h3 style="font-weight: bold; font-family: 'Microsoft YaHei', Helvetica, Arial, sans-serif; font-size: 1.1em; color: #333333;">关于BOM</h3>
<p style="text-indent: 2em;"><a style="color: #1299da; text-decoration: underline;" href="http://en.wikipedia.org/wiki/Byte-order_mark">BOM</a>是Byte Order Mark的简称, 它出现在Unicode流的开头部分，用来说明编码类型。因为系统可能是big endian，也可能是little endian, 或者是多字节的Unicode编码.把BOM放置在文件开头部分，利用它来判断字节序。</p>
<p style="text-indent: 2em;">在UTF-8编码中，BOM没有太大的意义，并且不推荐使用它。在HTML或XML的文件开头放置BOM,可能会导致无法解析。 在PHP中，如果头部有BOM,则可能会出现网页头部多一行、导致网页出现乱码或者其它不可预知的错位或错误， 因此，我们应该避免在PHP模板文件或源码代码文件的开头放置BOM。 但是Windows下，有些程序会默认给utf-8文件添加BOM，此时需要手动清除BOM头， 如果此类文件太多，可以考虑写程序遍历指定目录下所有文件，清除开头的BOM.</p>
<h2 style="font-weight: bold; font-family: 'Microsoft YaHei', Helvetica, Arial, sans-serif; font-size: 1.2em; color: #333333;">使用UTF-8编码</h2>
<h3 style="font-weight: bold; font-family: 'Microsoft YaHei', Helvetica, Arial, sans-serif; font-size: 1.1em; color: #333333;">输出UTF-8编码文件</h3>
<p style="text-indent: 2em;">如果要告诉浏览器你输出的编码格式，在PHP中可以使用：</p>
<pre style="background-color: #333333; color: #ffffff; font: normal normal normal 13px/normal 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Courier New', monospace; overflow-x: auto; overflow-y: auto; padding: 10px;"> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/header"><span style="color: #e2392d;">header</span></a><span style="color: #ffffff;">(</span><span style="color: #99ff00;">"Content-Type: text/html; charset=utf-8"</span><span style="color: #ffffff;">)</span><span style="color: #e0882f;">;</span></pre>
<p style="text-indent: 2em;">除了这种PHP的方式，也可以使用meta标签设置编码：</p>
<pre style="background-color: #333333; color: #ffffff; font: normal normal normal 13px/normal 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Courier New', monospace; overflow-x: auto; overflow-y: auto; padding: 10px;">&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;</pre>
<p style="text-indent: 2em;">对于xml文档，它可以直接支持编码作为xml的一部分。</p>
<pre style="background-color: #333333; color: #ffffff; font: normal normal normal 13px/normal 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Courier New', monospace; overflow-x: auto; overflow-y: auto; padding: 10px;"><span style="color: #ffffff;"><span style="color: #ffffff;">&lt;?xml</span> <span style="color: #ffffff;">version</span>=<span style="color: #99ff00;">"1.0"</span> <span style="color: #ffffff;">encoding</span>=<span style="color: #99ff00;">"utf-8"</span> <span style="color: #ffffff;">?&gt;</span></span></pre>
<h3 style="font-weight: bold; font-family: 'Microsoft YaHei', Helvetica, Arial, sans-serif; font-size: 1.1em; color: #333333;">PHP中的UTF-8编码支持</h3>
<p style="text-indent: 2em;">在PHP中,内置的字符串函数并不支持多字节的字符串，Unicode需要mbstring扩展支持，此扩展重载了现有的字符串处理函数。 <a style="color: #1299da; text-decoration: underline;" href="http://www.ibuildings.nl/blog/archives/661-Unicode-support-in-PHP-6.html">PHP6计划</a>将Unicode支持内置到语言中。</p>
<h3 style="font-weight: bold; font-family: 'Microsoft YaHei', Helvetica, Arial, sans-serif; font-size: 1.1em; color: #333333;">Mysql中的utf-8</h3>
<p style="text-indent: 2em;">如果我们的Mysql是使用utf-8编码，则在执行查询前经常会使用</p>
<pre style="background-color: #333333; color: #ffffff; font: normal normal normal 13px/normal 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Courier New', monospace; overflow-x: auto; overflow-y: auto; padding: 10px;"><span style="color: #ff8400;">SET</span> names utf8;</pre>
<p style="text-indent: 2em;">它的作用相当于执行下面的三条语句：</p>
<pre style="background-color: #333333; color: #ffffff; font: normal normal normal 13px/normal 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Courier New', monospace; overflow-x: auto; overflow-y: auto; padding: 10px;"><span style="color: #ff8400;">SET</span> character_set_client <span style="color: #e0882f;">=</span> utf8;
<span style="color: #ff8400;">SET</span> character_set_results <span style="color: #e0882f;">=</span> utf8;
<span style="color: #ff8400;">SET</span> character_set_connection <span style="color: #e0882f;">=</span> utf8;</pre>
<p style="text-indent: 2em;">在应用中出现编码问题，一个比较笨却有效的办法是将PHP文件，mysql客户端，mysql服务器端，前端页面，全部统一用utf-8编码。 另外在phpMyAdmin中有多种字符集，其中utf8_unicode_ci和utf8_general_ci是最常用的， 但是utf8_general_ci对某些语言的支持有一些小问题，如果可以接受， 那最好使用utf8_general_ci，因为它速度快。否则，请使用较为精确的utf8_unicode_ci，不过速度会慢一些。</p>
<h2 style="font-weight: bold; font-family: 'Microsoft YaHei', Helvetica, Arial, sans-serif; font-size: 1.2em; color: #333333;">识别UTF-8编码</h2>
<p style="text-indent: 2em;">在应用开发过程中，如果需要验证输入是否为UTF-8序列，则可能需要写代码实现相关功能。 虽然我们可以指定前端页面为UTF-8，但是我们并不能控制到服务器的数据一定是从指定的页面发送的。 因此，我们需要识别UTF-8编码。</p>
<pre style="background-color: #333333; color: #ffffff; font: normal normal normal 13px/normal 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Courier New', monospace; overflow-x: auto; overflow-y: auto; padding: 10px;"><span style="color: #cccccc; font-style: italic;">/**
 * 识别UTF-8编码 判断一个字符串是否为utf-8编码 2011-04-18 sz
 * @author phppan.p#gmail.com
 * http://www.phppan.com
 * 哥学社成员（http://www.blog-brother.com/）
 * TIPI团队成员（http://www.php-internal.com/）
 * @package blog
 */</span>

<span style="color: #cccccc; font-style: italic;">/**
 * 判断一个字符串是否为utf-8编码 方法一
 * 依据UTF-8编码的字节布局，以逆向思维，通过判断其不是UTF-8编码来判断正确性。
 * 此算法来源于&lt;&lt;Building Scalable Web Sites&gt;&gt;
 * @param &lt;type&gt; $string
 */</span>
<span style="color: #cc7833;">function</span> is_utf8<span style="color: #ffffff;">(</span><span style="color: #6d9cbe;">$string</span><span style="color: #ffffff;">)</span> <span style="color: #ffffff;">{</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">=</span> <span style="color: #56db3a;">'[\xC0-\xDF]([^\x80-\xBF]|$)'</span><span style="color: #e0882f;">;</span> <span style="color: #bc9458; font-style: italic;">//  匹配110xxxxx，其后应该有1个字节，如果此字节无法匹配10xxxxxx，或为结束符，则不是utf-8</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xE0-\xEF].{0,1}([^\x80-\xBF]|$)'</span><span style="color: #e0882f;">;</span> <span style="color: #bc9458; font-style: italic;">//匹配1110xxxx，其后应该有2个字节，</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xF0-\xF7].{0,2}([^\x80-\xBF]|$)'</span><span style="color: #e0882f;">;</span><span style="color: #bc9458; font-style: italic;">//匹配11110xxx，其后应该有3个字节，</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xF8-\xFB].{0,3}([^\x80-\xBF]|$)'</span><span style="color: #e0882f;">;</span><span style="color: #bc9458; font-style: italic;">//匹配111110xx，其后应该有4个字节，</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xFC-\xFD].{0,4}([^\x80-\xBF]|$)'</span><span style="color: #e0882f;">;</span><span style="color: #bc9458; font-style: italic;">//匹配1111110x，其后应该有5个字节，</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xFE-\xFE].{0,5}([^\x80-\xBF]|$)'</span><span style="color: #e0882f;">;</span><span style="color: #bc9458; font-style: italic;">//匹配1111110，其后应该有6个字节，</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\x00-\x7F][\x80-\xBF]'</span><span style="color: #e0882f;">;</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xC0-\xDF].[\x80-\xBF]'</span><span style="color: #e0882f;">;</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xE0-\xEF]..[\x80-\xBF]'</span><span style="color: #e0882f;">;</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xF0-\xF7]...[\x80-\xBF]'</span><span style="color: #e0882f;">;</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xF8-\xFB]....[\x80-\xBF]'</span><span style="color: #e0882f;">;</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xFC-\xFD].....[\x80-\xBF]'</span><span style="color: #e0882f;">;</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xFE-\xFE]......[\x80-\xBF]'</span><span style="color: #e0882f;">;</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|^[\x80-\xBF]'</span><span style="color: #e0882f;">;</span>

    <span style="color: #ff8400;">return</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/preg_match"><span style="color: #e2392d;">preg_match</span></a><span style="color: #ffffff;">(</span><span style="color: #99ff00;">"!<span>$pattern</span>!"</span><span style="color: #e0882f;">,</span> <span style="color: #6d9cbe;">$string</span><span style="color: #ffffff;">)</span> ? <span style="color: #cc7833;">FALSE</span> <span style="color: #e0882f;">:</span> <span style="color: #cc7833;">TRUE</span><span style="color: #e0882f;">;</span>
<span style="color: #ffffff;">}</span>

<span style="color: #cccccc; font-style: italic;">/**
 * 网上流传的一个验证方法 方法二
 * @link http://www.w3.org/International/questions/qa-forms-utf-8.en.php
 * @param &lt;type&gt; $string
 * @return &lt;type&gt;
 */</span>
<span style="color: #cc7833;">function</span> is_utf8<span style="color: #ffffff;">(</span><span style="color: #6d9cbe;">$string</span><span style="color: #ffffff;">)</span> <span style="color: #ffffff;">{</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">=</span> <span style="color: #56db3a;">'/^(?:'</span><span style="color: #e0882f;">;</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'[\x09\x0A\x0D\x20-\x7E]'</span><span style="color: #e0882f;">;</span>             <span style="color: #bd48b3; font-style: italic;"># ASCII</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xC2-\xDF][\x80-\xBF]'</span><span style="color: #e0882f;">;</span>             <span style="color: #bd48b3; font-style: italic;"># non-overlong 2-byte</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|\xE0[\xA0-\xBF][\x80-\xBF]'</span><span style="color: #e0882f;">;</span>         <span style="color: #bd48b3; font-style: italic;"># excluding overlongs</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}'</span><span style="color: #e0882f;">;</span>  <span style="color: #bd48b3; font-style: italic;"># straight 3-byte</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|\xED[\x80-\x9F][\x80-\xBF]'</span><span style="color: #e0882f;">;</span>         <span style="color: #bd48b3; font-style: italic;"># excluding surrogates</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|\xF0[\x90-\xBF][\x80-\xBF]{2}'</span><span style="color: #e0882f;">;</span>      <span style="color: #bd48b3; font-style: italic;"># planes 1-3</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|[\xF1-\xF3][\x80-\xBF]{3}'</span><span style="color: #e0882f;">;</span>          <span style="color: #bd48b3; font-style: italic;"># planes 4-15</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">'|  \xF4[\x80-\x8F][\x80-\xBF]{2}'</span><span style="color: #e0882f;">;</span>
    <span style="color: #6d9cbe;">$pattern</span> <span style="color: #e0882f;">.=</span> <span style="color: #56db3a;">')*$/xs'</span><span style="color: #e0882f;">;</span>

    <span style="color: #ff8400;">return</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/preg_match"><span style="color: #e2392d;">preg_match</span></a><span style="color: #ffffff;">(</span><span style="color: #6d9cbe;">$pattern</span><span style="color: #e0882f;">,</span> <span style="color: #6d9cbe;">$string</span><span style="color: #ffffff;">)</span><span style="color: #e0882f;">;</span>
<span style="color: #ffffff;">}</span>

<span style="color: #cccccc; font-style: italic;">/**
 * 判断字符串是否为utf8编码 方法三
 * @param &lt;type&gt; $string
 * @return &lt;type&gt;
 */</span>
<span style="color: #cc7833;">function</span> is_utf8<span style="color: #ffffff;">(</span><span style="color: #6d9cbe;">$string</span><span style="color: #ffffff;">)</span> <span style="color: #ffffff;">{</span>
    <span style="color: #ff8400;">if</span> <span style="color: #ffffff;">(</span><a style="color: #1299da; text-decoration: none;" href="http://www.php.net/preg_match"><span style="color: #e2392d;">preg_match</span></a><span style="color: #ffffff;">(</span><span style="color: #99ff00;">"/^(["</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">228</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"-"</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">233</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"]{1}["</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">128</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"-"</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">191</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"]{1}["</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">128</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"-"</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">191</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"]{1}){1}/"</span><span style="color: #e0882f;">,</span> <span style="color: #6d9cbe;">$string</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">==</span> <span style="color: #cc7833;">TRUE</span>
            <span style="color: #e0882f;">||</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/preg_match"><span style="color: #e2392d;">preg_match</span></a><span style="color: #ffffff;">(</span><span style="color: #99ff00;">"/(["</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">228</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"-"</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">233</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"]{1}["</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">128</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"-"</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">191</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"]{1}["</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">128</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"-"</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">191</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"]{1}){1}$/"</span><span style="color: #e0882f;">,</span> <span style="color: #6d9cbe;">$string</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">==</span> <span style="color: #cc7833;">TRUE</span>
            <span style="color: #e0882f;">||</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/preg_match"><span style="color: #e2392d;">preg_match</span></a><span style="color: #ffffff;">(</span><span style="color: #99ff00;">"/(["</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">228</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"-"</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">233</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"]{1}["</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">128</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"-"</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">191</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"]{1}["</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">128</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"-"</span> <span style="color: #e0882f;">.</span> <a style="color: #1299da; text-decoration: none;" href="http://www.php.net/chr"><span style="color: #e2392d;">chr</span></a><span style="color: #ffffff;">(</span><span style="color: #1299da;">191</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">.</span> <span style="color: #99ff00;">"]{1}){2,}/"</span><span style="color: #e0882f;">,</span> <span style="color: #6d9cbe;">$string</span><span style="color: #ffffff;">)</span> <span style="color: #e0882f;">==</span> <span style="color: #cc7833;">TRUE</span>
    <span style="color: #ffffff;">)</span> <span style="color: #ffffff;">{</span>
        <span style="color: #ff8400;">return</span> <span style="color: #cc7833;">TRUE</span><span style="color: #e0882f;">;</span>
    <span style="color: #ffffff;">}</span>

    <span style="color: #ff8400;">return</span> <span style="color: #cc7833;">FALSE</span><span style="color: #e0882f;">;</span>
<span style="color: #ffffff;">}</span></pre>
<p style="text-indent: 2em;">第一种和第二种基本类似，结果也基本类似，但是对于“营业”等字符串无法准确的识别。 第三种方法对于上面提到的字符串可以正确识别，但是对于“欧舒丹”等字符串却无法识别。</p>
<p style="text-indent: 2em;">
]]></content:encoded>
			<wfw:commentRss>https://www.phppan.com/2011/04/utf8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
