3

抱歉,这听起来可能很疯狂。所以主要问题是,如果我来自网络服务的数据是 json_encoded,那么大多数表情符号在应用程序中显示为正方形。不是全部,而是大多数。我正在尝试在 Web 服务端解决此问题。

我发现如果我不使用 json_encode,而是执行以下操作:

$array .= '{"text":"emoji"}
echo = '[' . $array . ']';

基本上像它的 json 编码一样回显它。表情符号在应用程序中正确显示,但其他事情正常工作,因为它没有编码。所以我使用 mb_detect_encoding 发现有表情符号的文本是 UTF-8,没有表情符号的文本是 ASCII。所以我所做的是检查我是否可以检查它是否不是 UTF-8 以及它是否不仅仅是 json_encode 字符串。如果它是 UTF-8 并且什么也不做。这适用于返回的所有数据的 95%。像下面的东西。

$encode = mb_detect_encoding($theMemo);
if($encode != 'UTF-8'){
$theMemo = json_encode($theMemo);
}

$array .= '{"text":"' . $theMemo . '"}
echo = '[' . $array . ']';

我遇到的问题是有时文本类似于“Floyd Mayweatherâ€@FloydMayweather #TheMoneyTeam”,其中包含一些 unicode,但不是表情符号,所以我需要对其进行 json_encode 以使其正确显示.

基本上我需要找到一种方法来 json_encode 任何没有表情符号的东西,或者找到一种更合适的方法来解决这个问题。我知道我在做什么可能看起来很奇怪,但我只是想找到一个解决方案,即使它看起来像一个 hack。

4

0 回答 0