2015-01-28 4 views
0

Печать юникод символов

HTML Entity (decimal) ₹ 
HTML Entity (hex) ₹ 
How to type in Microsoft Windows Alt +20B9 
UTF-8 (hex) 0xE2 0x82 0xB9 (e282b9) 
UTF-8 (binary) 11100010:10000010:10111001 
UTF-16 (hex) 0x20B9 (20b9) 
UTF-16 (decimal) 8,377 
UTF-32 (hex) 0x000020B9 (20b9) 
UTF-32 (decimal) 8,377 

Мне нужно напечатать этот символ, я делаю это:

$str = htmlentities('&#8377'); 
echo html_entity_decode($str); 

, но он просто выводит &#8377. Я ожидаю, что полукокс

ответ

0

вычислял его:

echo html_entity_decode('₹', ENT_NOQUOTES, 'UTF-8');

2

Ссылка на символ, как ₹ не распознается без ведомой точки с запятой. Кроме того, вы можете просто использовать

echo "₹" 

или (если вы правильно используете UTF-8 во всем, что рекомендуется) просто

echo "₹"; 

И довольно часто вам не нужно echo, как вы можете просто напишите ссылку ₹ или символ в формате HTML.

Независимо от того, отображает ли браузер символ «₹», это другая проблема; вы должны, как правило, выполнять некоторые настройки шрифта, возможно, с загружаемым шрифтом, @font-face.

+0

хм .. ничего не работает. Я пытаюсь заменить «Rs» на этот символ в файле, подобным этому: http://trac.symfony-project.org/browser/branches/1.4/lib/i18n/data/en.dat – 3zzy

+0

@ 3zzy, что угодно проблемы, которые у вас есть с этим файлом, они сильно отличаются от заданного вами вопроса (и даже сами ответили). Поэтому он должен быть размещен как новый вопрос с достаточной детализацией. Если речь идет о замене цитируемой строки кавычками в данных JSON, как кажется, убедитесь, что вы четко это сформулировали, укажите кодировку (символы) символа, которая используется или может использоваться, и укажите, (следовательно, возможно, вне темы в SO) или что-то, что нужно сделать программным путем (на каком языке?). –

+0

Его одноразовая замена, но, вероятно, полезная для каждого индиана, потому что 'Rs' необходимо заменить' ₹' раньше или позже. – 3zzy

0
echo "₹"; 

Работает до тех пор, пока вы выводите на HTML-контент, где применяются ссылки на символы. Не подходит для других форматов (например, встраивание в JavaScript).

echo "₹"; 

Будет работать нормально до тех пор, пока ваш исходный файл будет сохранен в кодировке UTF-8.

В противном случае байтовая кодировка UTF-8 символа U + 20B9 Индекс индийской рупии равен 0xE2, 0x82, 0xB9. Итак:

echo "\xE2\x82\xB9"; 

Или, используя функцию для создания UTF-8 строк из числа точек коды:

function unichr($i) { 
    return iconv('UCS-4LE', 'UTF-8', pack('V', $i)); 
} 

echo unichr(0x20B9); 
+0

Я пытаюсь заменить «Rs» на этот символ в http://trac.symfony-project.org/browser/branches/1.4/lib/i18n/data/en.dat, но ничего не работает – 3zzy

+0

@ 3zzy: Отправьте код, который вы используете, чтобы попытаться выполнить замену. «Эхо» отлично работает. – bobince

+0

Точный файл: http://trac.symfony-project.org/browser/branches/1.4/lib/i18n/data/en.dat – 3zzy

Смежные вопросы