gpt4 book ai didi

php - "1366 Incorrect string value"在字符串上修剪("\u{200d}")之后

转载 作者:可可西里 更新时间:2023-11-01 01:11:28 26 4
gpt4 key购买 nike

我目前正在从 api 中提取一些数据。我对数据没有任何控制权,但在某些字符串上它有空格,而在其他字符串上它有一些我需要删除的其他字符。我通过这样做解决了这个问题

trim($firstLineText, "\u{200d} \t\n\r\0\x0B")

上面确保字符串是正确的。但是现在我不能将它插入到 sql 数据库中。我收到此错误:

1366 Incorrect string value: '\x9CJD\xE2\x80\x9D' for column

该字段设置为 varchar。根据我的理解,Trim 应该只修剪这些字符,是否添加了其他导致此问题的内容?

编辑:我最初遇到的问题是其中一个字符串是这个“e2808d20202020202020202020202020204c4c43”当我在字符串中检查它时它显示这个“â LLC”。

最佳答案

正如@mario 在评论中正确指出的那样,trim 仅适用于字节级别,不适用于 unicode 字符。

unicode 字符“\u{200d}”扩展为三个字节:0xE2 0x80 0x8B

所以

trim($firstLineText, "\u{200d}")

可以理解为

trim($firstLineText, "\xE2\x80\x8B")

这就是您最终得到损坏的 UTF-8 字符串的原因。

要解决这个问题,你可以使用

preg_replace("/(^[\x{200d} \t\n\r\x0B]+|[\x{200d} \t\n\r\x0B]+$)/u", "", $str);

但请注意,您可能想要扩展列表,因为有更多的 unicode 空白字符!

关于php - "1366 Incorrect string value"在字符串上修剪("\u{200d}")之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55290729/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com