我将字符串编码从宽utf8
转换为有限编码cp1251
。我需要保留一些未包含在cp1251中的字符。
在python 2.x中有一个特殊的函数,在编码转换期间用html-entities替换不可能的字符:
# -*- coding: utf-8 -*-
s_in = "Ø 125 mm".decode('utf8')
s_out = s_in.encode('cp1251', 'xmlcharrefreplace')
print s_out # prints Ø 125 mm
PHP中是否有任何现成的func / lib来完成任务?
我的代码是:
<?php
$in = 'Ø 125 mm';
$out = mb_convert_encoding($in, 'cp1251', 'utf8');
echo $out; // prints ? 125 mm
答案 0 :(得分:0)
通过在iconv()
中使用PHP
函数,您可以将字符串从一个转换为另一个编码方案。例如:
$out = iconv("UTF-8", "CP1251//IGNORE", $in);
如果追加字符串
//IGNORE
,则不能包含字符 在目标字符集中表示的是静默丢弃
有关完整说明,请参阅链接: http://php.net/manual/en/function.iconv.php
答案 1 :(得分:0)
使用json_encode
JSON_UNESCAPED_UNICODE
$in = 'Ø 125 mm';
$out = json_encode($in, JSON_UNESCAPED_UNICODE);
echo json_decode($out, true);
http://sandbox.onlinephpfunctions.com/code/cfd9f38ed7ad8b668285be31004bfe2578da6436