У меня есть сервер Windows IIS, работающий с PHP. Пользователь вставляет слово через форму HTML, он переходит к PHP, а затем PHP вызывает функцию COM dll (vb6), передавая слово функции в виде строки utf8.
Все идет хорошо, пока вход не содержит заглавные греческие буквы с диалитикой http://unicode-table.com/en/03AA/
Когда это происходит, приходит предупреждение PHP: [07-Jul-2016 14:15:50 Europe/Athens] PHP Warning: Unknown: Could not convert string to unicode: No mapping for the Unicode character exists in the target multi-byte code page.
и проходит другая зашифрованная строка.
например, слово μαϊου
будет работать хорошо, но слово μαΪου
выдаст предупреждение.
Вот что функция .dll видит в обоих случаях:
Я немного попробовал поиграть с настройками php, но ничего не изменилось.
Текущие настройки для php.ini (те, которые я изменил по умолчанию на следующие — но все же ничего):
default_charset = "utf-8"com.code_page="utf-8"mbstring.internal_encoding = UTF-8
Я не уверен, что я должен сделать, чтобы решить эту проблему. Заранее спасибо за любые идеи.
Задача ещё не решена.
Других решений пока нет …