Home >Backend Development >PHP Problem >How to convert php gb2312 to utf8
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.
#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 = 'The quick brown fox jumps over the lazy dog.'; $patterns = array(); $patterns[0] = '/quick/'; $patterns[1] = '/brown/'; $patterns[2] = '/fox/'; $replacements = array(); $replacements[2] = 'bear'; $replacements[1] = 'black'; $replacements[0] = 'slow'; echo preg_replace($patterns, $replacements, $string); ?> Example #1 iconv() example <?php $text = "This is the Euro symbol '€'."; echo 'Original : ', $text, PHP_EOL; echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL; echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL; echo 'Plain : ', 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__).'/lib/'.$className.'.php'; } header('Content-Type: text/html; charset=UTF8'); // http://47.93.27.106:8064/testurl.php?url=https://www.sk666.vip $url = $_GET['url']; try { $html = Curl::testURL($url); $html = preg_replace('/charset=gb2312/', 'charset=UTF8', $html); // $enc = mb_detect_encoding($html); $html = iconv('gbk', 'utf-8', $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('&', $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, [ 'url' => $u, 'apikey' => '******', // 发邮件至aiqing174@qq.com索取apikey ]); } public static function testURL($u) { $api = "http://qbview.url.cn/getResourceInfo"; return self::get($api, [ 'appid' => 31, 'url' => $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!