- 主题:一个PHP的问题请教
跟大家汇报一下:打印了这个字段的编码,居然是CP936,这是Windows系统默认编码?不知道从哪里设置的,服务器系统是Ubuntu,数据库各种编码设置都是utf8mb4.
这会和PHP文件有关联吗?我让AI在Windows系统里的Trae中写的PHP————————
PHP message: 2025-04-21 23:15:55 - car_type编码检查:
; PHP message: 检测到的编码: CP936
; PHP message: 是否UTF-8: false
; PHP message: 十六进制值: a6e59e8be5928ce59cb0e696b9e58fabe8afb6e5958a
; PHP message: PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xA6\xE5\x9E\x8B\xE5\x92...' for column 'car_type'
--
FROM 106.38.48.*
服务器上用file -i查了
config.php: text/x-php; charset=utf-8
Database.php: text/x-php; charset=utf-8
get_voice.php: text/x-php; charset=utf-8
index.php: text/x-php; charset=utf-8
--
FROM 106.38.48.*
一般PHP报错,那确实就是那里错了
然后问题就回到:为啥输出一个这个编码的字串,一步步查
【 在 jansea 的大作中提到: 】
: 跟大家汇报一下:打印了这个字段的编码,居然是CP936,这是Windows系统默认编码?不知道从哪里设置的,服务器系统是Ubuntu,数据库各种编码设置都是utf8mb4.
: 这会和PHP文件有关联吗?我让AI在Windows系统里的Trae中写的PHP————————
: PHP message: 2025-04-21 23:15:55 - car_type编码检查:
: ...................
--
FROM 106.92.49.*
谢谢关注哈
太诡了,我打印一个别的同类型字段,也是从数据库里读出来后打印,居然是不一样的结果
PHP message: Label encoding detection: UTF-8; PHP message: Label is valid UTF-8: true;
这个字段此时还是空的状态,没有内容
【 在 huaxinjuedui 的大作中提到: 】
: 一般PHP报错,那确实就是那里错了
: 然后问题就回到:为啥输出一个这个编码的字串,一步步查
:
--
FROM 106.38.48.*
代码上没看出来什么问题
你在mysql workbench 里看看数据表的编码和字段的编码,确认是不是utf8mb4
【 在 jansea 的大作中提到: 】
: 数据库里car_type的定义是:
: | Field | Type | Null | Key | Default | Extra |
: +-----------------------+---------------+------+-----+---------+----------------+
: ...................
--
FROM 222.128.63.59
安装了远程桌面,但是忘了root密码哈
晚上回去找一下字条上的记录再运行workbench试试
不过我现在暂时放弃这个字段了
【 在 sweetgun 的大作中提到: 】
: 代码上没看出来什么问题
: 你在mysql workbench 里看看数据表的编码和字段的编码,确认是不是utf8mb4
:
--
FROM 106.38.48.*
if ((empty($userInfo['car_type']) && ($content !== '') && (str_starts_with($content, '车型')))) 这样试试
--
FROM 222.67.161.*
第一个条件不满足的,怎么组合都不影响结果判断
【 在 yangjun0120 的大作中提到: 】
: if ((empty($userInfo['car_type']) && ($content !== '') && (str_starts_with($content, '车型')))) 这样试试
--
FROM 183.241.167.*