我的任务是制作一个简单的“密码”脚本。密码是通过随机替换提供的字符串中的其他字符来构造的,然后在密文末尾将替换作为附加字符串发出。
这似乎适用于字母数字字符和一些符号。但是,我尝试向脚本发出英镑符号 (£),但它停止工作。
现在,我检查了我在每一步都使用了 UTF-8 编码。
该脚本由 1 页组成。在我的 PHP 文件的顶部,我有:
<?php header("content-type: text/html; charset=utf-8"); ?>
在我的 HTML 页面中,我在该<head>
区域有这个:
<meta charset="utf-8" />
在我的“密码”和“解密”形式中,我有:
accept-encoding="utf-8"
当我在 Chrome 中加载页面时,当我签入工具 -> 编码时,它似乎正在使用 UTF-8 编码。
问题似乎是,当我的脚本逐个遍历每个字符时,它认为 GBP 符号的长度为 2 个字符。即使我使用strlen
or也是如此mb_strlen
。
是否有某种方法可以将 GBP 符号和其他符号(尚待测试)缩减为一个字符的长度?或者我是否需要编写一些额外的逻辑来检测当前字符是长度为 2 的特殊字符,并相应地推进我的迭代器?
提前谢谢了。