zoukankan      html  css  js  c++  java
  • PHP字符编码问题之GB2312 VS UTF8

      今天照着书随便写了段代码,代码意图是将字符串使用str_split()函数进行分割成数组,英文好说,但分割中文(两个中文一个数组单元)时就出问题了——

      看代码:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title> New Document </title>
    <meta name="author" content=""/>
    <meta name="keywords" content=""/>
    <meta name="description" content=""/>
    <link rel="stylesheet" type="text/css" href="" />
    </head>

    <body>
    <?php
    $string1 = "i am a phper";
    $string2 = "这本书是蓝海战略";
    print_r(str_split($string1));
    echo "<br />";
    print_r(str_split($string2,4));
    ?>
    </body>
    </html>

      测试结果打出我所料——中文乱码

      Why?Why?Why?Why?乱码是什么?什么事乱码?给我解释解释,什么,是%&的乱码!

      因为英文无乱码,只有中文乱码,首先想到了编码的问题,于是突然想起来UTF-8的编码是UTF-8需要3个字节,死马当活马医吧!

      于是  print_r(str_split($string2,4));这句中的4 ,就被换成了6,于是乎——看结果

      同样,你也可以试试将编码的charset的UTF-8改成GB2312,因为Unicode的编码是需要2字节的,所以说Gb2312的编码比UTF-8能够节约1/3的空间,但是如果你要兼容繁体中文、韩文、日文的其他的语言就需要使用UTF-8了。

      顺便发现了首动感的Music,拿来分享一下:

      —It's Ok?

      —It's OK!

  • 相关阅读:
    GPIO推挽输出和开漏输出详解
    Linux驱动中completion接口浅析(wait_for_complete例子,很好)【转】
    当JAVA集合移除自身集合元素时发生的诸多问题
    Machine Learning #Lab1# Linear Regression
    Nth to Last Node in List
    Codeforces Round #272 (Div. 2)AK报告
    iOS 使用Block实现函数回调
    ios上禁止输入表情
    POJ 1287:Networking(最小生成树Kruskal)
    CSS实现强制换行-------Day 78
  • 原文地址:https://www.cnblogs.com/picaso/p/2072622.html
Copyright © 2011-2022 走看看