중국 웹사이트는 일반적으로 gbk/gb2312 또는 utf-8의 두 가지 인코딩을 선택합니다.
gbk 인코딩의 각 중국어 문자는 2바이트를 차지합니다. 예를 들면 다음과 같습니다.
<code><span>$zhStr</span> = ‘您好,中国!’; <span>echo</span> strlen(<span>$zhStr</span>); <span>// 输出:12</span></code>
<code>utf-8编码下每个中文字符所占字节为3,例: </code>
<code><span>$zhStr</span> = ‘您好,中国!’; <span>echo</span> strlen(<span>$zhStr</span>); <span>// 输出:18</span></code>
그렇다면 이 중국어 문자열 세트의 길이를 계산하는 방법은 무엇일까요? 어떤 사람들은 중국어 문자열의 길이를 gbk에서 2로 나누거나 utf-8 인코딩에서 3으로 나누는 것만으로는 충분하지 않다고 말할 수 있습니다. 하지만 문자열은 정직하지 않으며 99%의 경우 중국어와 영어가 혼합되어 표시된다는 점을 고려해야 합니다.
이것은 WordPress의 코드 조각입니다. 먼저 정규식을 사용하여 문자열을 개별 단위로 분해한 다음 문자열의 길이인 단위 수를 계산하는 것이 주요 아이디어입니다. UTF-8로 인코딩된 내용은 처리 가능) :
<code><span>$zhStr</span> = ‘您好,中国!’; <span>$str</span> = ‘Hello,中国!’; <span>// 计算中文字符串长度</span><span><span>function</span><span>utf8_strlen</span><span>(<span>$string</span> = null)</span> {</span><span>// 将字符串分解为单元</span> preg_match_all(“/./us”, <span>$string</span>, <span>$match</span>); <span>// 返回单元个数</span><span>return</span> count(<span>$match</span>[<span>0</span>]); } <span>echo</span> utf8_strlen(<span>$zhStr</span>); <span>// 输出:6</span><span>echo</span> utf8_strlen(<span>$str</span>); <span>// 输出:9</span></code>
아래에는 중국어 문자열의 길이를 정확하게 계산하는 함수를 캡슐화했습니다.
<code><span><span>function</span><span>count_strlen</span><span>(<span>$string</span> = null)</span> {</span><span>$fileType</span> = mb_detect_encoding(<span>$string</span> , <span>array</span>(<span>'UTF-8'</span>,<span>'GBK'</span>,<span>'LATIN1'</span>,<span>'BIG5'</span>)) ; <span>//判断字符串中文编码的类型</span><span>$length</span> = iconv_strlen(<span>$string</span>,<span>$fileType</span>);<span>//根据字符编码计算字符串长度</span><span>return</span><span>$length</span>; } <span>$str</span> = <span>"中文45汶"</span>; <span>$len</span> = count_strlen(<span>$str</span>); <span>echo</span><span>$len</span>; <span>//输出5</span></code>
위 내용은 문자열과 PHP 내용을 포함하여 중국어 문자열의 길이를 계산하는 PHP를 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.