首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将cp850转换为utf字符-

将cp850转换为utf字符-
EN

Stack Overflow用户
提问于 2018-03-22 00:20:03
回答 2查看 611关注 0票数 0

我需要将特殊字符(在本例中为-字符)从cp850转换为unicode,但我无法使用mb_convert_encoding完成此操作。在西班牙语中,正确的转换应该是从-到-,但函数mb_convert_enconding(‘--’,'utf-8')返回的是。

你知道为什么会发生这种情况吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-03-22 00:26:35

如果对已有的UTF8字符串应用utf8_encode(),它将返回乱码的UTF8输出。

我创建了一个函数来解决所有这些问题。它被称为Encoding::toUTF8()

您不需要知道字符串的编码是什么。它可以是Latin1 (iso8859-1)、windows1252或UTF8,也可以是它们的混合字符串。Encoding::toUTF8()会将所有内容转换为UTF8。

用法:

代码语言:javascript
复制
require_once('Encoding.php'); 
use \ForceUTF8\Encoding;  // It's namespaced now.
$utf8_string = Encoding::fixUTF8($garbled_utf8_string);

下载:

https://github.com/neitanod/forceutf8

示例:

代码语言:javascript
复制
echo Encoding::fixUTF8("Fédération Camerounaise de Football");
echo Encoding::fixUTF8("Fédération Camerounaise de Football");
echo Encoding::fixUTF8("FÃÂédÃÂération Camerounaise de Football");
echo Encoding::fixUTF8("Fédération Camerounaise de Football");

将输出:

代码语言:javascript
复制
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football

我在一个名为Encoding的类上将函数(forceUTF8)转换为一系列静态函数。新函数是Encoding::toUTF8()

票数 1
EN

Stack Overflow用户

发布于 2018-03-22 00:23:47

您需要传入源码:

代码语言:javascript
复制
print mb_convert_enconding('Ð', 'utf-8', 'CP850');

如果你不这样做,默认的顺序将被用来尝试猜测原始编码,并且它通常首先检测UTF8和/或Latin1。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49411573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档