无法回显符号;也无法在代码中看到符号

时间:2014-07-24 12:52:05

标签: php vba encoding utf-8

使用VBA输出时,以下符号在MS Excel电子表格中打印良好:

Sub print_chrw_sub()
    Dim a1
    a1 = "&H27E6"
    ActiveCell.Offset(1).Value = ChrW(a1)

    Dim a2
    a2 = "&H27E7"
    ActiveCell.Offset(2).Value = ChrW(a2)

End Sub

输出:

⟦
⟧

但是,当我在PHP代码中使用符号时,sybols看起来像代码中的方块以及Web浏览器 - 也在上面的当前用法中。例如:

<?php
    echo $str1 = "⟧"
?>

我使用的是UTF-8编码。

另一方面,以下sybols在PHP代码和Web浏览器中正确打印:

  

CHRW(安培; H22A4)

输出:


  

CHRW(安培; H22A5)

输出:

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您引用为chrW(&H27E7)的字符称为Mathematical right white square bracket(或U+27E7)。

当它显示在Excel中时,显示的字体可能是Calibri或Arial,但这些字体实际上不支持此字符。
那就是font substitution介入的地方:提供一个能正确处理字符的字体 如果您查看this page,您会看到系统中哪些字体实际支持U+27E7。在我的系统上只有两个:Cambria Math和Segoe UI Symbol。

如果看到方形符号(□),则表示字体替换无法正常工作。对于PHP源代码,它并不是很重要,因为实际存在正确的字符(假设编码设置正确)。

对于HTML代码,您应该考虑设置一个您知道支持此字符的字体,请记住,本地字体(已安装的字体)在两个系统之间存在很大差异。您可能希望使用CSS font-face来提供网络字体。