mysql 左检索前 x 个字符和 json_encode utf8

mysql left retrieve first x characters and json_encode utf8

我对这个查询有疑问:

Select LEFT(name,3) 
from table
where id = '1'

查询没问题,但是当名称中有一些特殊字符被剪切时我不能 json_encode() 它,所以我的问题是如何用 [=29= 剪切名称] 查询所以我得到整个特殊字符所以我可以 json_encode 它。

在 json_last_error() 上我得到“5”,即 JSON_ERROR_UTF8 因为字符被剪切并且不再是 utf8...

我的名字字段是 varchar(255) latin1_swedish_ci,我要删除的名字是这样的:“şÂposâş”

我可以对这个查询使用 LEFT() 还是必须使用 php 才能只显示前 3 个字符。 谢谢

我通过设置

设法解决了它

mysqli_set_charset($sql,'utf8mb4');

在我最初 mysqli_connect

之后

我不得不将 table 排序规则更改为 utf8mb4_general_ci。 任何 utf8 都可以工作,但这个新的 utf8mb4 似乎是未来最常用的排序规则,我不需要排序,因为我只会得到一个名字:)

谢谢