因为编码问题打搅大家真是不好意思。
环境:
Windows10
Apache/2.4.18 (Win32)
Laravel 5.1
PHP/7.0.0
5.7.10-log - MySQL Community Server (GPL)
服务器字符集: UTF-8 Unicode (utf8)
我的数据库和表是 UTF8 编码,

我的代码也使用 UTF8 编码

代码使用了 Laravel 作为框架,在 Laravel 的框架中,
……\vendor\laravel\framework\src\Illuminate\Database\Connection.php
使用了这么一段代码

如图中红色圈处所示,我加了一个 var_dump()来显示即将存储的数据,打印得到的是

_
出问题的地方就在图中的那段 地址 处,此时地址为 D:\MusicBase\xxx 纯中文的歌曲 1.mp3 。
在执行完以后,数据库中出现的情况是这样子的

如果将文件名字全部改为中文, 如 D:\MusicBase\纯中文的歌曲 1.mp3 ,则变为

感觉像是字符串中 从中文开始以后全部被截断。
自己在搜索引擎中搜索之后,有人提示在执行 insert 之前先执行 “ set names utf8 ”,我照做之后没有任何改变。
我突发奇想,将该命令改为 “ set names gbk ”,结果却成功存入数据库,如图

这到底是为什么?
)
)