Использование драйвера ODBC ibm-iaccess-1.1.0.10-1.0.amd64 в Debian Linux.Когда я выполняю php sql-запрос и проверяю ответ, я вижу, что некоторые из возвращенных данных недействительны utf-8.
mb_check_encoding возвращает значение «ложь», и символ на экране в браузере Chrome является символом вопросительного знака с ромбом.
Это происходит в некоторых типах полей CHAR.
if(!mb_check_encoding($row["field"])) {
... exit with utf-8 error
}
Я могу обойти это, преобразовав UTF-8 в UTF-8:
mb_convert_encoding($row["field"], 'UTF-8', 'UTF-8');
/ etc / odbc.ini:
[as400]
Description = iSeries Access ODBC Driver
Driver = iSeries Access ODBC Driver
system = as400
Naming = 0
DefaultLibraries = *usrlibl
DefaultPkgLibrary = QGPL
DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512
ConnectionType = 0
CommitMode = 1
ExtendedDynamic = 1
AllowDataCompression = 1
AllowUnsupportedChar = 0
ForceTranslation = 1
Trace = 0
Charset = UTF-8
/ etc / odbcinst.ini:
Description=IBM i Access for Linux 64-bit ODBC Driver
Driver=/usr/lib/libcwbodbc.so
Setup=/usr/lib/libcwbodbcs.so
fileusage=1
dontdlclose=1
Кроме того, документирует ли IBM какой-либо из параметров odbc?Похоже, что это вслепую пытается параметры, пока что-то работает.