PHP 远程调用 HTTPS 网址内容乱码解决方法

在使用 PHP 远程调用 HTTPS 网址内容并将其保存到另一个 PHP 文件时,可能会遇到生成的 PHP 文件编码为 GB2312,导致页面中的中文显示为乱码的问题。

以下方法可以帮助你解决这个问题:

1. 指定远程调用编码为 UTF-8

在使用 file_get_contents 函数远程获取内容时,可以指定编码为 UTF-8:

$content = file_get_contents('https://www.example.com', false, stream_context_create([
    'ssl' => [
        'verify_peer' => false,
        'verify_peer_name' => false,
    ],
    'http' => [
        'header' => 'Content-Type: text/html; charset=UTF-8',
    ],
]));

2. 在生成的 PHP 文件中指定编码为 UTF-8

在生成的 PHP 文件中,使用 header 函数指定编码为 UTF-8:

header('Content-Type:text/html; charset=UTF-8');

3. 使用 iconv 函数转换编码

如果以上方法仍然无法解决乱码问题,可以尝试使用 iconv 函数将编码转换为 GB2312:

$content = iconv('UTF-8', 'GB2312//IGNORE', $content);

注意在转换时加上 //IGNORE 避免出现无法转换的字符导致脚本中断。

通过以上方法,你就可以解决 PHP 远程调用 HTTPS 网址内容后生成的 PHP 文件中文乱码的问题。

PHP 远程调用 HTTPS 网址内容乱码解决方法

原文地址: https://www.cveoy.top/t/topic/lDhG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录