Home >Backend Development >PHP Problem >How to convert php gb2312 to utf8

How to convert php gb2312 to utf8

藏色散人
藏色散人Original
2021-09-19 15:00:202840browse

php Method to convert gb2312 to utf8: 1. Open the corresponding PHP file; 2. Check the original encoding; 3. Convert the gb2312 page to a utf8 page by using the preg_replace and iconv functions.

How to convert php gb2312 to utf8

#The operating environment of this article: Windows7 system, PHP7.1, Dell G3 computer.

php How to convert gb2312 to utf8?

Convert PHP gb2312 page to utf8 page

Use 2 functions preg_replace, iconv

  $html = preg_replace('/charset=gb2312/', 'charset=UTF8', $html);
     // $enc = mb_detect_encoding($html);
     $html = iconv('gbk', 'utf-8', $html);

https:// php.net/manual/en/function.iconv.php

https://www.php.net/manual/en/function.preg-replace.php

Reference Example of php official website

Example #2 
Using indexed arrays with preg_replace()
<?php
$string = &#39;The quick brown fox jumps over the lazy dog.&#39;;
$patterns = array();
$patterns[0] = &#39;/quick/&#39;;
$patterns[1] = &#39;/brown/&#39;;
$patterns[2] = &#39;/fox/&#39;;
$replacements = array();
$replacements[2] = &#39;bear&#39;;
$replacements[1] = &#39;black&#39;;
$replacements[0] = &#39;slow&#39;;
echo preg_replace($patterns, $replacements, $string);
?>
Example #1 
iconv() example
<?php
$text = "This is the Euro symbol &#39;€&#39;.";

echo &#39;Original : &#39;, $text, PHP_EOL;
echo &#39;TRANSLIT : &#39;, iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo &#39;IGNORE   : &#39;, iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo &#39;Plain    : &#39;, iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;

?>

* testurl.php

<?php
/**
 * Created by PhpStorm.
 * User: mingzhanghui
 * Date: 8/30/2019
 * Time: 09:38
 */

function __autoload($className) {
    include dirname(__FILE__).&#39;/lib/&#39;.$className.&#39;.php&#39;;
}

header(&#39;Content-Type: text/html; charset=UTF8&#39;);

// http://47.93.27.106:8064/testurl.php?url=https://www.sk666.vip
$url = $_GET[&#39;url&#39;];

try {
    $html = Curl::testURL($url);
    $html = preg_replace(&#39;/charset=gb2312/&#39;, &#39;charset=UTF8&#39;, $html);
    // $enc = mb_detect_encoding($html);
    $html = iconv(&#39;gbk&#39;, &#39;utf-8&#39;, $html);
    echo $html;
} catch (Exception $e) {
    Response::fail($e->getMessage(), $e->getCode());
}

* Curl.php

<?php
/**
 * Created by PhpStorm.
 * User: mingzhanghui
 * Date: 8/29/2019
 * Time: 15:34
 */
class Curl
{
    /**
     * @param $map
     * @return string
     */
    public static function buildQuery(/* array */ $map) {
        $a = [];
        array_walk($map, function($value, $name) use (&$a) {
            array_push($a, sprintf("%s=%s", urlencode($name), urlencode($value)));
        });
        return implode(&#39;&&#39;, $a);
    }

    /**
     * https://www.ft12.com
     * @param $u
     * @return mixed
     * @throws Exception
     */
    public static function shortURL($u) {
        $api = "http://api.ft12.com/api.php";
        return self::get($api, [
            &#39;url&#39; => $u,
            &#39;apikey&#39; => &#39;******&#39;, // 发邮件至aiqing174@qq.com索取apikey
        ]);
    }

    public static function testURL($u) {
        $api = "http://qbview.url.cn/getResourceInfo";
        return self::get($api, [
            &#39;appid&#39; => 31,
            &#39;url&#39; => $u
        ]);
    }

    /**
     * @param $host string
     * @param $params array assoc
     * @return mixed
     * @throws Exception
     */
    protected static function get($host, $params) {
        $ch = curl_init();
        $headers = [
            "Accept: application/json",
            "X-Requested-with: XMLHttpRequest",
        ];
        $qs = self::buildQuery($params);
        $fullURL = sprintf("%s?%s", $host, $qs);

        curl_setopt_array($ch, [
            CURLOPT_URL => $fullURL,
            CURLOPT_HEADER => 0,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_HTTPHEADER => $headers,
            CURLOPT_CONNECTTIMEOUT => 5
        ]);

        $data = curl_exec($ch);
        $errno = curl_errno($ch);
        if ($errno) {
            throw new Exception("%s\n", curl_error($ch), $errno);
        }
        curl_close($ch);
        return $data;
    }

}

The original web page content is as follows:

<html><head>
<meta http-equiv="Content-Language" content="zh-CN">
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta content="telephone=no" name="format-detection">
<link rel="stylesheet" type="text/css" href="http://rd.wechat.com/static/zh_CN/default/css/redirect_confirm.css?v=1375841702">
<title>͡ʾ</title>
<style>
.container { }
.sectionContent { text-shadow:0 1px 0 #f5f5f5;font-size:18px; }
.sectionPannel {}
.firstP .lastP{ text-shadow:0 1px 0 #f5f5f5;}
.lastP { font-size:14px; }
a.normalLink { font-size:14px;text-decoration:none;color:#1587C1;font-weight:bold;text-shadow:0 1px 0 #f5f5f5; }
.confirm{padding:20px 15px;}
.confirm a.icon_info { display:block;border-radius:20px;background:#999;font-weight:bold;font-size:14px;color:#eee;text-shadow:0 1px 0 #333;border-top:1px solid #ddd;border-bottom:1px solid #fff;width:20px;height:20px;line-height:20px;margin:0 auto;text-decoration:none;padding:0;font-family:Georgia; }
.confirm .greenBtn b{font-weight:400}
.minorLink {
margin-top: 20px;padding:10px;font-weight:normal;font-size:14px;text-shadow:0 1px 0 #f5f5f5;text-decoration:none;color:#737373;line-height:1.5;background:transparent url("http://rd.wechat.com/static/zh_CN/default/img/bg_line.png?v=") no-repeat top center;
}
.sectionPannel .sectionContent .url{max-height:100%;}
.url_box{ margin: 5px; padding: 5px 0; border-top: 1px solid #B5B5B5; border-bottom: 1px solid #B5B5B5; box-shadow: inset 0 1px 0px #FEFEFE, 0 1px 0px #FEFEFE;}
.url_box .url_wrp{margin: 0; max-height: 72px; overflow: hidden;}
.icon_warn{
height:160px;
background:url("http://rd.wechat.com/static/zh_CN/default/img/icon_warn.png?v=") no-repeat center;
margin-bottom:20px;
-webkit-background-size:160px;
background-size:160px;
}
.icon_link{
height:100px;
background:url("http://rd.wechat.com/static/zh_CN/default/img/icon_link.png?v=") no-repeat center;
margin-bottom:20px;
-webkit-background-size:100px;
background-size:100px;
}
@media all and (-webkit-min-device-pixel-ratio: 1.5) {
.icon_warn{
background-image:url("http://rd.wechat.com/static/zh_CN/default/img/icon_warn_1.5x.png?v=");
-webkit-background-size:160px;
background-size:160px;
}
.icon_link{
background-image:url("http://rd.wechat.com/static/zh_CN/default/img/icon_link_1.5x.png?v=");
-webkit-background-size:160px;
background-size:160px;
}
.minorLink{
background-image:url("http://rd.wechat.com/static/zh_CN/default/img/bg_line_1.5x.png?v=");
-webkit-background-size:320px 6px;
background-size:320px 6px;
}
}
</style>
</head>
<body>
	<!-- 
	Ԑɽ¸?
	1	%mtt_original_url£¬֢ˇһ¸?§·ĎʵŔ­ʼurl
	2 %mtt_qbview_url£¬ѨҪ³ꈡ+תëµõrl£¬ԲĻט¶¨в+³ꈡ±늶
	3 %mtt_proxy_url£¬ ǕͨOאתµŐ鈳¡£
	
	-->
<section class="container">
<p class="confirm" style="padding-top:0">
<!--alertIcon1 use for state1,alertIcon2 use for state2-->
<p class="section
icon_link
"></p>
<p class="section sectionPannel">

<p class="sectionContent" style="margin-bottom:20px;word-break: break-all">
<p class="url firstP" style="color:#737373;font-size:14px;">
ţ½«Ҫ·Ďʵ
<p class="url_box"><p class="url_wrp" id="url">https://www.sk666.vip</p></p>
<p style="color:red">´畚°²ȫ·萕£¬Ϊ±£֏źµİ²ȫ£¬ӑ°?9½ء£</p>
</p>
</p>

</p>
</p>
</section>

Recommended study:《PHP video tutorial

The above is the detailed content of How to convert php gb2312 to utf8. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:How to copy files in phpNext article:How to copy files in php