四季变幻 2015-05-04 06:59 采纳率: 33.3%
浏览 4109

php cp936转utf8的问题

我要抓取这个网页http://info.xitek.com/news/

但是获取源代码的时候获取的是乱码

icov和mb_convert_encoding都转换不了

后来百度下这个网页的编码是CP936

还是转不成UTF8格式

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 19:21
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要将PHP程序从CP936编码转换为UTF-8编码,您首先需要确定网站上使用的实际编码。根据您的描述,网站使用了CP936编码。为了进行正确的转换,您需要了解如何在PHP中正确地处理不同类型的字符集。

    以下是一个简单的示例,展示了如何在PHP中使用iconv()函数将CP936编码转换为UTF-8编码:

    <?php
    
    // 定义两个字符串:原始的CP936文本和目标的UTF-8文本
    $source = "您好";
    $target = "你好";
    
    // 使用iconv()函数进行转换
    $result = iconv('CP932', 'UTF-8', $source);
    
    echo "Source: $source\n";
    echo "Target: $result\n";
    

    在这个例子中,我们定义了一个原始的CP936文本("您好")和一个目标的UTF-8文本("你好")。然后,我们使用iconv()函数将原始文本转换为目标文本。

    注意,iconv()函数有两个参数:第一个参数是要转换的输入文本,第二个参数是目标编码。在这里,我们将输入文本转换为目标文本,所以第二个参数设置为"UTF-8"。

    此外,如果您想要更精确地控制转换过程,您可以考虑使用mb_convert_encoding()函数,它提供了更多的选项和灵活性。例如,可以指定特定的字符集、编码方式以及可选的解码器。

    <?php
    
    // 定义两个字符串:原始的CP936文本和目标的UTF-8文本
    $source = "您好";
    $target = "你好";
    
    // 使用mb_convert_encoding()函数进行转换
    $result = mb_convert_encoding($source, 'UTF-8', 'CP932');
    
    echo "Source: $source\n";
    echo "Target: $result\n";
    

    在这个例子中,我们定义了一个原始的CP936文本("您好")和一个目标的UTF-8文本("你好")。然后,我们使用mb_convert_encoding()函数将原始文本转换为目标文本。

    希望这可以帮助您解决问题!

    评论

报告相同问题?