【问题标题】:How can I deal with Unicode code points?如何处理 Unicode 代码点?
【发布时间】:2011-11-02 10:55:21
【问题描述】:

假设用户提交评论,我想获取其值的 Unicode 代码点数组,选择哪些代码点无效并丢弃它们,并保存评论。 我该怎么做?

例如

用户提交“hello”,我想获取一个数组$codepoints,其值如下:

$codepoints[0] = 0068
$codepoints[1] = 0065
$codepoints[2] = 006C
$codepoints[3] = 006C
$codepoints[4] = 006F

而且,出于某种奇怪的原因,我不想允许字母“l”,所以我想丢弃代码点为 U+006C 的字符。所以保存的评论将是“heo”。 这甚至可能吗?

提前致谢!

【问题讨论】:

  • 如果您安装了多字节,最好使用 mb_convert_encoding。代码点是解码 UTF-8 或 UTF-16LE/BE 后得到的。码点一般用 24 位整数表示,但大多数系统为了速度,使用 32 位整数来表示码点。字符可以是一个或多个代码点,具体取决于字形上的标记。

标签: php unicode internationalization sanitization


【解决方案1】:

这是一个使用 unicode 文字的示例。

mb_internal_encoding('utf-8');
mb_regex_encoding('utf-8');
echo mb_ereg_replace('[•]', '', '•T•e•s•t•');

这将输出字符串Test

如果您希望以十六进制编写代码点,this answer 可能会很有用。

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    相关资源
    最近更新 更多