php POST和非英语字符传递为空

php POST和非英语字符传递为空,php,post,Php,Post,我正试图用一个搜索选项来编程一个希伯来语网站。 (旧站点,此站点的字符集为windows-1255) 我正在使用PHP5.2和Apache2.2,在Debian5(Lenny)上使用 已启用相应的代码页 我正在使用_POST将参数传递给脚本。如果我通过 英文单词的脚本一切工作,但当我使用希伯来语 没有任何内容通过POST函数传递。当我使用ECHO时 要显示_POST,变量为空 有什么问题吗 另外,这是一个在PHP4和Debian4上运行良好的老站点,问题只是出现了 升级到PHP5+debian5

我正试图用一个搜索选项来编程一个希伯来语网站。 (旧站点,此站点的字符集为windows-1255) 我正在使用PHP5.2和Apache2.2,在Debian5(Lenny)上使用 已启用相应的代码页

我正在使用_POST将参数传递给脚本。如果我通过 英文单词的脚本一切工作,但当我使用希伯来语 没有任何内容通过POST函数传递。当我使用ECHO时 要显示_POST,变量为空

有什么问题吗

另外,这是一个在PHP4和Debian4上运行良好的老站点,问题只是出现了 升级到PHP5+debian5后。

尝试以下“编程注意事项”下的提示:

*明确使用UTF-8,标记为
o脚本顶部的“mb_语言('uni');mb_内部编码('UTF-8');”
o内容类型:文本/html;通过.htaccess、header()或Web服务器配置,HTTP头中的charset=utf-8
HTML标记中的o和
o创建数据库。。。默认字符集utf8校对utf8。。。引擎。。。CHARSET=utf8 COLLATE=utf8\u unicode\u ci是MySQL实例的典型序列,对于其他数据库具有类似的表达式
o SET NAMES“utf8”COLLATE“utf8\u unicode\u ci”是PHP在连接后立即发送MySQL的一个有价值的指令
o在php.ini中,分配默认值\u字符集=UTF-8
*用mb_strlen和mb_convert_大小写替换字符串函数,如strlen和strtlower
*用mb_send_邮件替换邮件和同事等。;虽然支持Unicode的电子邮件是一个超出本介绍范围的高级主题,但使用mb_send_mail是一个很好的起点
*使用多字节正则表达式函数(请参阅参考资料)

特别是,在这种情况下,前两个子要点。

谢谢各位,这是我的错

问题解决了

我们有一个类过滤器,可以识别php5中的类 跑

filter_var($this->source[$var], FILTER_SANITIZE_STRING, (FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH));

这会使希伯来人的魔咒变成空的

否,该站点使用windows-1255运行
filter_var($this->source[$var], FILTER_SANITIZE_STRING, (FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH));