仅当从程序内启动 xampp 服务器时才返回问号而不是阿拉伯字符

Question marks returned instead of Arabic characters ONLY when xampp servers are launched from within program

正如标题所说,仅当我在 java 程序中 运行 mysqld.exehttpd.exe 时才返回问号。但是,当我 运行 xampp.exe 并从 UI 开始 apachemysql 时,它工作得很好。我正在使用带有 mysql 数据库的 slim 3 框架。

我尝试过各种可能的设置字符集:设置 slim 应用程序配置、设置数据库字符集、使用 JSON_UNESCAPED_UNICODE 编写 response

// Slim application configuration
$config = [ 'charset' => 'utf-8' .....]

// .htacess file
AddDefaultCharset utf-8

// my.ini was already configured

// $response in php function
return $response->withHeader('Content-Type', 'application/json')->withStatus(200)->withJson($json_response, null, JSON_UNESCAPED_UNICODE);

但是,由于当我手动 运行 xampp 时问题正在解决,我想也许有一些文件应该 运行 除了上面提到的那些。如果没有,是否有解决此问题的方法?

编辑:我尝试通过 api 插入数据,而不是使用 phpmyadmin 中的查询手动插入数据。插入的数据是唯一正确返回的行。请注意,我在服务器处于 运行 时从我的 java 程序中插入了数据。

我通过正确设置 PDO 解决了这个问题。 (查看 OP 评论)

$pdo = new PDO ("mysql:host=localhost;dbname=database;charset=utf8", "user", "pass");

通过 api 插入的数据被正确检索的原因是它是以与 PDO 设置相同的字符集发送的。当我在设置 PDO 后尝试检索它时,它的格式是错误的。