PHP:没有针对特定希腊字符的 Unicode 字符映射...

PHP:没有针对特定希腊字符的 Unicode 字符映射...

我有一个使用 PHP 的 Windows IIS 服务器。用户通过 HTML 表单插入一个单词,该单词进入 PHP,然后 PHP 调用 COM dll (vb6) 函数,将该单词作为 utf8 字符串传递给该函数。

一切顺利,直到输入包含带有 dialytika 的大写希腊字母,例如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

我不确定该怎么做才能解决这个问题。提前感谢您的任何见解。

答案1

我通过在实例化 com 对象时指定代码页来解决这个问题。我无法使用 php.ini com.code_page 指令使其正常工作。尝试使用:

$com = new COM("object name", NULL, CP_UTF8);

相关内容