代码之家  ›  专栏  ›  技术社区  ›  Brian Ramsay

如何在PHP中指定特殊字符

  •  1
  • Brian Ramsay  · 技术社区  · 17 年前

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

    7 回复  |  直到 14 年前
        1
  •  2
  •   Kieran Hall    17 年前

    您需要确保在输出时发送的头是正确的。

    <?php
    
    header('Content-Type: text/html; charset=utf-8'); 
    
    $char = utf8_encode(html_entity_decode('&sigma;'));
    
    echo $char;
    

    这将输出字符。

    编辑 :

    如果将字符传递到图形中不起作用,那么软件就不支持UTF-8。

        2
  •  2
  •   Stefan Gehrig    17 年前

    sigma(_)可以用UTF-8编码通过字节序列表示。 xCF x83 (代码点U+03C3),因此您可以尝试构建一个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中也有sigma(_)字符( xF3 )-但我怀疑这对你有帮助。

    第三种选择是指定某种数学符号字体,将sigma(_)映射到其他字符。

        3
  •  1
  •   Eli    17 年前

    "\x1F" 将适用于常规的ASCII字符,但我认为sigma是一个Unicode字符,因此您必须使用类似的字符 utf8_encode . PHP不支持Unicode。

        4
  •  1
  •   Srividya Sharma    17 年前

    对于FusionCharts,要在图表中显示小Sigma,请使用%cf%83。将这个百分比编码形式放入一个PHP字符串中。 我试过了。它起作用了。另外,请检查文档页面上的使用特殊字符: http://www.fusioncharts.com/docs/Contents/SpChar_Euro.html http://www.fusioncharts.com/docs/Contents/SpChar_Pound.html 等。

        5
  •  1
  •   Rahul Kumar    17 年前

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

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

    如何:

    html_entity_decode('&sigma;');
    

    PHP Manual for html_entity_decode

        7
  •  0
  •   Brian Ramsay    17 年前

    我也可以使用chr(229),其中229是我要查找的ASCII代码