Я конвертирую строковое кодирование из широкого utf8
к ограниченному кодированию cp1251
, Мне нужно сохранить некоторые символы, не включенные в cp1251.
В python 2.x есть специальная функция, которая при преобразовании кодировки заменяет невозможные символы на html-сущности:
# -*- coding: utf-8 -*-
s_in = "Ø 125 mm".decode('utf8')
s_out = s_in.encode('cp1251', 'xmlcharrefreplace')
print s_out # prints Ø 125 mm
Есть ли готовый func / lib в PHP для выполнения задачи?
Мой код:
<?php
$in = 'Ø 125 mm';
$out = mb_convert_encoding($in, 'cp1251', 'utf8');
echo $out; // prints ? 125 mm
Используя iconv()
функция в PHP
Вы можете преобразовать строку из одной в другую закодированную схему. Пример:
$out = iconv("UTF-8", "CP1251//IGNORE", $in);
Если вы добавите строку
//IGNORE
, символы, которые не могут быть
представленные в целевой кодировке молча отбрасываются
Для полного описания смотрите ссылку:
http://php.net/manual/en/function.iconv.php
Пытаться 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