相关疑难解决方法(0)

检测编码并使所有内容UTF-8

我正在从各种RSS源中读出大量文本并将它们插入到我的数据库中.

当然,在馈送中使用了几种不同的字符编码,例如UTF-8和ISO-8859-1.

不幸的是,有时文本的编码存在问题.例:

  1. "Fußball"中的"ß"应该在我的数据库中看起来像这样:"Ÿ".如果是"Ÿ",则会正确显示.

  2. 有时,"Fußball"中的"ß"在我的数据库中看起来像这样:"ß".当然,它显示错误.

  3. 在其他情况下,"ß"保存为"ß" - 所以没有任何改变.然后它也显示错误.

我该怎么做才能避免案例2和3?

如何使所有内容编码相同,最好是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;
}
Run Code Online (Sandbox Code Playgroud)

我已经测试了它,但它不起作用.它出什么问题了?

php encoding utf-8 character-encoding

293
推荐指数
7
解决办法
34万
查看次数

如何在PHP中替换Microsoft编码的引号

“ ” ‘ ’由于我的应用程序中存在编码问题,我需要用常规引号('和")替换单引号和双引号()的Microsoft Word版本.我不需要它们是HTML实体,我不能更改我的数据库架构.

我有两个选择:使用正则表达式或关联数组.

有一个更好的方法吗?

php string encoding character-encoding

68
推荐指数
6
解决办法
6万
查看次数

使用PHP转换Microsoft Word特殊字符

我正在尝试转换由包含MS Word省略号和长划线的用户粘贴的Word文本,然后再进行处理.

我在这里找到了一个旧的解决方案http://www.codingforums.com/archive/index.php/t-47163.html,但它对我不起作用.例如,在替换省略号之后,变量返回为空.以前从未见过这样的事:

$src = "Long word dash – and weird Word ellipsis…";
$src = str_replace("‘", "'", $src);
$src = str_replace("’", "'", $src);
$src = str_replace("”", '"', $src);
$src = str_replace("“", '"', $src);
$src = str_replace("–", "-", $src);
$src = str_replace("…", "...", $src);
print $src;
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

php ms-word utf-8 character-encoding

18
推荐指数
3
解决办法
2万
查看次数

标签 统计

character-encoding ×3

php ×3

encoding ×2

utf-8 ×2

ms-word ×1

string ×1