我有一個(gè)問題,非常非常挑剔。我有一個(gè)通過 unixODBC 連接到 IBM i (AS400) 的 LAMP 服務(wù)器。PHP 通過 IBM i 上的 ODBC 連接在 IBM i 上執(zhí)行 sql。我想在我的數(shù)據(jù)庫(kù)中做一個(gè)簡(jiǎn)單的選擇。當(dāng)腳本由導(dǎo)航器 (apache) 執(zhí)行時(shí),它工作得很好,但是當(dāng)腳本由 CLI (php example.php) 執(zhí)行時(shí),以及當(dāng)我的記錄 PDO 中有特殊字符如:? ? é à @ 等時(shí),它會(huì)返回 NULL . 當(dāng)我在我的 Web 瀏覽器中執(zhí)行腳本時(shí),所有特殊字符都可以。我不明白為什么。我將“CHARSET=UTF-8”放入我的 DSN PDO 連接中。我認(rèn)為這個(gè)錯(cuò)誤與:iSeries Access ODBC Driver with unixodbc on Debian - Invalid UTF-8 characters being returned from iSeries because when I SELECT with HEX(field) 我有來(lái)自瀏覽器和 CLI 的 hexa。PHP 最新版本 (7.4.6),Debian 9。
1 回答

冉冉說
TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
根據(jù)評(píng)論線程,問題的原因是當(dāng)從命令行 shell 和 php CLI 運(yùn)行時(shí),shell 沒有為正確的語(yǔ)言環(huán)境(國(guó)家等)正確配置 UTF-8。
- 1 回答
- 0 關(guān)注
- 107 瀏覽
添加回答
舉報(bào)
0/150
提交
取消