检测编码并使所有UTF-8

检测编码并使所有UTF-8

我正在从各种RSS提要中读取大量文本,并将它们插入到我的数据库中。

当然,在提要中有几种不同的字符编码,例如UTF-8和ISO-8859-1。

不幸的是,文本的编码有时会出现问题。例子:

  1. 在我的数据库中,“fubsball”中的“http”应该是这样的:“Ÿ”。如果它是“Ÿ”,则显示正确。

  2. 有时,在我的数据库中,“FuƒŸ”中的“http”是这样的。当然,它会被错误地展示出来。

  3. 在另一些情况下,“http”被保存为“http”-因此没有任何更改。然后它也会被错误地显示出来。

我能做些什么来避免第二和第三种情况?

我如何使所有的编码相同,最好是UTF-8?我什么时候该用utf8_encode(),我什么时候该用utf8_decode()(很清楚效果是什么,但我什么时候必须使用这些函数?)什么时候我必须对输入什么都不做?

你能帮我把所有的编码都做好吗?也许有这个功能mb_detect_encoding()?我能为这个写一个函数吗?所以我的问题是:

  1. 如何找出文本使用的编码方式?
  2. 如何将其转换为UTF-8-无论旧编码是什么?

像这样的功能有用吗?

function correct_encoding($text) {
    $current_encoding = mb_detect_encoding($text, 'auto');
    $text = iconv($current_encoding, 'UTF-8', $text);
    return $text;}

我已经测试过了,但不起作用。怎么了?


慕丝7291255
浏览 387回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP