Как я могу указать специальный символ в PHP - PullRequest
1 голос
/ 26 июня 2009

Я пытаюсь вывести сигма-символ (& sigma;) в метку на графике FusionChart. Как я могу указать этот символ в строке PHP? Я попробовал htmlentity σ, но он не правильно интерпретируется графиком. Есть ли способ указать символ в PHP, используя какой-то код символа?

Ответы [ 7 ]

2 голосов
/ 26 июня 2009

Сигма (σ) может быть представлена ​​в кодировке UTF-8 байтовой последовательностью xCF x83 (кодовая точка U + 03C3), поэтому вы можете попытаться построить строку PHP

$sigma = "\xCF\x83";

Но поскольку я не знаю FusionChart, я не могу сказать, может ли он обрабатывать строки в кодировке UTF-8 или многобайтовые строки в целом. Согласно их описанию продукта, они поддерживают Unicode (, но требуется спецификация UTF-8 ), чтобы можно было создать ответ XML в PHP:

$response = "\xEF\xBB\xEF<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
<root>
    <element attribute=\"\xCF\x83\">\xCF\x83</element>
</root>";
header('Content-Type: text/xml; charset=utf-8'); 
echo $response;

В ISO-8859-7 и Windows-1253 (xF3) также есть символ сигмы (σ), но я сомневаюсь, что это вам поможет.

Третий вариант - указать какой-либо математический шрифт символа, который отображает сигма (σ) на некоторый другой символ.

2 голосов
/ 26 июня 2009

Вы должны убедиться, что отправляете правильные заголовки при выводе.

<?php

header('Content-Type: text/html; charset=utf-8'); 

$char = utf8_encode(html_entity_decode('&sigma;'));

echo $char;

Это выведет символ.

Редактировать :

Если передача символа на график не работает, значит, программное обеспечение не поддерживает UTF-8.

1 голос
/ 14 июля 2009

Сохраните ваш .php файл как кодировку utf-8 с включенным bom, и вы можете напрямую использовать сигма-символ (σ).

    $sXML = "<chart><set value='20' label='σ' /></chart>";
echo renderChartHTML("../FusionCharts/Column2D.swf", "", "$sXML", "myFirst", 600, 300, false);
1 голос
/ 27 июня 2009

Чтобы в FusionCharts отображалась небольшая сигма на графике, используйте% CF% 83. Поместите эту процентную форму в строку php. Я попробовал это. Оно работает. Также проверьте страницы документации по использованию специальных символов здесь: http://www.fusioncharts.com/docs/Contents/SpChar_Euro.html http://www.fusioncharts.com/docs/Contents/SpChar_Pound.html и т.д.

1 голос
/ 26 июня 2009

"\x1F" будет работать для обычных символов ASCII, но я думаю, что сигма - это символ Unicode, поэтому вам придется использовать что-то вроде utf8_encode . PHP плохо поддерживает Unicode.

1 голос
/ 26 июня 2009

А как же:

html_entity_decode('&sigma;');

Руководство по PHP для html_entity_decode

0 голосов
/ 26 июня 2009

Я мог бы также использовать chr (229), где 229 - это код ASCII, который я ищу

...