我成功使用最新的树脂罐(来自http://www.caucho.com/download/),允许我在Grails Web应用程序中使用遗留的PHP代码。除非非ASCII字符集外,所有内容都呈现出色。
这些字符显示为问号,如下所示: 的 ???? ?? ???
我尝试了很多解决方案:
从设置php.ini到 utf8 ,确保extension=php_mbstring.dll
包含在php.ini中。
我还确保MySQL数据库配置为执行utf-8。存储在数据库中的字符在phpMyAdmin中正确显示
此外,我能够执行die("BLAH")
,其中 BLAH 是非ASCII文本,并且它将正确输出到浏览器。我的浏览器在所有页面上显示内容标题utf-8。
另一个问题是,我能够在Grails中运行PHP代码库,并在 SAME 机器上的 WAMP 服务器内运行,连接到 SAME MySQL 数据库,它输出非ASCII字符就好了。
我的感觉是,这是从MySQL到运行在Grails中的PHP的数据传输问题(记住,它可以从MySQL运行到运行在WAMP中的相同PHP)。在这两种情况下,我甚至在运行查询之前都会执行mysql_query("SET NAMES 'utf8'")
。
我也尝试过使用WAMP php.ini文件并在Grails中使用它,而Grails PHP仍然不会很好玩...我的一部分认为Grails中的PHP不是在读php.ini文件,并回到一些默认的php.ini(我不知道) 例如,如果我将Grails php.ini文件设置为空文件,Grails仍然可以正常启动,我可以渲染php页面。但如果我将php.ini设置为垃圾文本,如“asdfasdf”,Grails将无法启动......所以这让我相信它正在看到php.ini ...
其他信息:
我已尝试过我在网上找到的所有内容,但没有运气......感谢您的帮助!
答案 0 :(得分:1)
Quercus的下一个版本(4.0.36)修复了MySQL编码的长期问题。参见: