加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php:从cp1251转换为utf8

发布时间:2020-12-13 17:22:06 所属栏目:PHP教程 来源:网络整理
导读:我在将字符串从cp1251转换为utf8时遇到问题… 我需要从数据库中获取一些名称,这些名称都在cp1251中(我不是那个创建该数据库的人,所以我无法编辑它,但我确定这些名称是cp1251)… 数据库中的名字是这个 – “Р?Р?С,РμС?Р?РμС,Р?С?РёС”С?Р°
我在将字符串从cp1251转换为utf8时遇到问题…

我需要从数据库中获取一些名称,这些名称都在cp1251中(我不是那个创建该数据库的人,所以我无法编辑它,但我确定这些名称是cp1251)…

数据库中的名字是这个 – “Р?Р?С,РμС?Р?РμС,Р?С?РёС”С?ах…“
我正在使用iconv函数将其转换为utf8,如下所示:

iconv(“UTF-8”,“CP1251//IGNORE”,$name)

我在结果中得到的是 – “ ?нтернетвцифрах”(它是俄语),但前两个符号不正确……它应该是“Интернетвцифрах”……

所以我要做的最后一件事是以某种方式改变这两个符号“ ?”俄语字母“И”…我真的不知道怎么做…我试过使用preg_replace,但它不起作用……或者我没有正确使用它.

我很抱歉俄罗斯的信件,很难在不显示的情况下解释我的需求.

解决方法

第一个字母输出不正确,因为在 CP1251中没有使用存储UT的UTF-8编码所需的字节之一(确切地说是0x98).如果数据库已用问号替换98字节,则必须更改它在使用iconv之前回来:

$name = str_replace("xD0x3F","xD0x98",$name);
echo iconv("UTF-8","CP1251//IGNORE",$name);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读