如何在PHP中指定特殊字符

时间:2009-06-26 14:54:00

标签: php unicode utf-8 character-encoding fusioncharts

我正在尝试在FusionChart图中的标签中输出sigma字符(σ)。如何在PHP字符串中指定该字符?我已经尝试了htmlentity σ,但图表没有正确解释。有没有办法使用某种字符代码在PHP中指定字符?

7 个答案:

答案 0 :(得分:2)

您需要确保在输出时发送正确的标题。

<?php

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

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

echo $char;

这将输出字符。

修改

如果将字符传递到图表中不起作用,则软件不支持UTF-8。

答案 1 :(得分:2)

sigma(σ)可以通过字节顺序xCF x83(代码点U + 03C3)以UTF-8编码表示,因此您可以尝试构建PHP字符串

$sigma = "\xCF\x83";

但由于我不知道FusionChart,我不能说它是否可以处理UTF-8编码的字符串或一般的多字节字符串。根据他们的产品描述,他们支持unicode( 但需要UTF-8 BOM ),因此您可以在PHP中构建XML响应:

$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)中也有一个sigma(σ)字符 - 但我怀疑这对你有帮助。

第三个选项是指定某种数学符号字体​​,将西格玛(σ)映射到其他字符。

答案 2 :(得分:1)

怎么样:

html_entity_decode('&sigma;');

PHP Manual for html_entity_decode

答案 3 :(得分:1)

"\x1F"适用于常规ASCII字符,但我认为sigma是一个unicode字符,因此您将不得不使用utf8_encode之类的内容。 PHP的Unicode支持很差。

答案 4 :(得分:1)

对于FusionCharts,要在图表中显示小西格玛,请使用%CF%83。将此百分比编码形式放在php字符串中。 我试过这个。有用。另请查看有关使用特殊字符的文档页面:http://www.fusioncharts.com/docs/Contents/SpChar_Euro.html http://www.fusioncharts.com/docs/Contents/SpChar_Pound.html

答案 5 :(得分:1)

将.php文件保存为启用了bom的utf-8编码,您可以直接使用sigma字符(σ)。

    $sXML = "<chart><set value='20' label='σ' /></chart>";
echo renderChartHTML("../FusionCharts/Column2D.swf", "", "$sXML", "myFirst", 600, 300, false);

答案 6 :(得分:0)

我也可以使用chr(229),其中229是我正在寻找的ASCII码