【问题标题】:php String iteration does not detect Π symbolphp字符串迭代未检测到Π符号
【发布时间】:2015-01-20 09:13:11
【问题描述】:

我在 PHP "S*+%2YKΠ3)3Π+)+Θ" 中有我想要迭代的字符串。

我的代码:

$string = "S*+%2YKΠ3)3Π+)+Θ";
$charLength = mb_strlen($string);
for($i = 0 ; $i < $charLength ; $i++) {
    $char = mb_substr($string, $i , 1);
    if($char == 'Π') {
       echo "this is my Π character";
    }
}

但我从来没有输入 echo 语句来得到“这是我的 Π 字符”,

任何人都可以帮助我解决这个问题,请... 我已经在寻找其他答案,例如:

How to convert any character encoding to UTF8 on PHP

Convert utf8-characters to iso-88591 and back in PHP

PHP: Convert any string to UTF-8 without knowing the original character set, or at least try

How to convert a string to utf-8 code in php

但从不适合我的情况。谢谢

【问题讨论】:

    标签: php string encoding utf-8 character-encoding


    【解决方案1】:

    这样的代码很好,但是有许多可能的缺陷:

    1. 您需要告诉mb 函数它们应该使用什么编码。要么分别将编码传递给每个人(例如mb_strlen($string, 'UTF-8')),要么使用mb_internal_encoding为所有人设置一次编码。
    2. 如果您希望字符串文字采用 UTF-8 编码,您的 .php 源代码文件必须以 UTF-8 格式保存。检查您选择的文本编辑器,您实际上是在保存编码为 UTF-8(无 BOM)的文件。

    【讨论】:

    • 谢谢!我添加了 mb_substr($string, $i , 1, 'UTF-8') 并且效果很好!
    猜你喜欢
    • 2011-06-03
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 2012-10-23
    • 2014-04-21
    • 1970-01-01
    相关资源
    最近更新 更多