将字符串转换为字符数组-多字节

假设在2019年,每个不是UNICODE安全的解决方案都是错误的。在PHP中将字符串转换为UNICODE字符数组的最佳方法是什么?

显然,这意味着使用大括号语法访问字节是错误的,以及使用str_split

$arr = str_split($text);

来自样本输入,例如:

$string = '先éé€???‍ ?‍❤️‍?';

我预计:

array(16) {



[0]=>

  string(3) "先"

  [1]=>

  string(2) "é"

  [2]=>

  string(1) "e"

  [3]=>

  string(2) "́"

  [4]=>

  string(3) "€"

  [5]=>

  string(4) "?"

  [6]=>

  string(4) "?"

  [7]=>

  string(4) "?"

  [8]=>

  string(3) "‍"

  [9]=>

  string(1) " "

  [10]=>

  string(4) "?"

  [11]=>

  string(3) "‍"

  [12]=>

  string(3) "❤"

  [13]=>

  string(3) "️"

  [14]=>

  string(3) "‍"

  [15]=>

  string(4) "?"

}


撒科打诨
浏览 125回答 2
2回答

呼如林

这对我有用,它将unicode字符串分解为字符数组://// split at all position not after the start: ^// and not before the end: $, with unicode modifier// u (PCRE_UTF8).//$arr = preg_split("/(?<!^)(?!$)/u", $text);例如:<?php//$text = "堆栈溢出";$arr = preg_split("/(?<!^)(?!$)/u", $text);echo '<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8" /></head><body>';print_r($arr);echo '</body></html>';?>在浏览器中,它产生以下结果:Array ( [0] => 堆 [1] => 栈 [2] => 溢 [3] => 出 )
打开App,查看更多内容
随时随地看视频慕课网APP