我正在设置一个新服务器,并希望在我的Web应用程序中完全支持UTF-8.我过去曾在现有的服务器上尝试过此操作,但最终似乎不得不回归ISO-8859-1.
我在哪里需要设置编码/字符集?我知道我需要配置Apache,MySQL和PHP来执行此操作 - 是否有一些我可以遵循的标准清单,或者可能是在出现不匹配的地方进行故障排除?
这适用于运行MySQL 5,PHP,5和Apache 2的新Linux服务器.
在我的网络服务器中,当用户请求带有奇怪字符的网址时,我会删除这些字符.系统会记录这些案例.当我检查消毒后的病例时,我发现了这些.我很好奇这些网址的目标是什么?
我检查IP,这些是真实的人,并使用网站作为一个普通人.但是在这些人的20个URL请求中有一次,URL终于有了这些奇怪的角色.
http://example.com/@%EF%BF%BD%EF%BF%BD%02?o=3&g=&s=&z=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%3E?, agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0,
http://example.com/%60E%EF%BF%BD%02?o=3&g=&s=&z=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%3E?, agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
http://example.com/%60E%EF%BF%BD%02?o=3&g=&s=&z=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%3E?, agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
http://example.com/p%EF%BF%BD%1D%01?o=3&g=&s=&z=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%3E?, agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
http://example.com/%EF%BF%BDC%EF%BF%BD%02?o=3&g=&s=&z=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%3E?, agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0
http://example.com/%EF%BF%BDR%EF%BF%BD%02?o=3&g=&s=&z=%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD`%EF%BF%BD%EF%BF%BD%7F, agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
http://example.com/%EF%BF%BDe%EF%BF%BDv8%01%EF%BF%BD?o=3&g=P%01%EF%BF%BD&s=&z=%EF%BF%BD%EF%BF%BD%15%01%EF%BF%BD%EF%BF%BD, agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
Run Code Online (Sandbox Code Playgroud)
我遇到了从plv8.elog()获取正确输出的问题.刚开始,我在Ubuntu 12.10上使用pgxn安装的PostgreSQL 9.2,plv8 1.4.1.我有一个我正在构建的函数,它包含嵌套的游标循环并使用许多预准备语句.我正在关闭游标并释放准备好的语句.所有这些功能都会生成一个对象数组,这些对象是将插入到许多不同表中的记录.
它正在分解的地方是我使用对象中的数据循环遍历该数组以生成查询字符串.我正处于代码的这一部分的构建阶段,因此在我通常执行查询字符串的时候,我会尝试将其输出到控制台.这就是腐败发生的地方.
当输出它在我的测试中生成的9个查询字符串时,只显示其中的7个.当我进入postgres日志时,我发现在2个缺失的查询字符串的末尾,有一个看起来像钻石的字符,里面有问号.基本上它是一些无法在当前字符集中显示的字符.我已经测试了查询生成器代码的所有部分,但找不到任何原因.我相信plv8.elog()函数或plv8引擎的字符串连接功能由于某种原因而破坏.
我遇到的问题是,如果它是字符串连接功能,我不能信任查询字符串正确执行.我已经通过从函数中删除代码并使用数组中的静态信息来测试代码.在这种情况下,它工作正常,所以我知道这部分代码没有问题.
首先,有没有人见过这个?plv8.elog()的腐败或怪异行为?当您的函数达到一定的大小或复杂度时,数据是否有任何损坏?如果是这样,你能想出一种至少解决它的方法吗?
另外,如果它是plv8.elog()函数,还有另一种方法来获取变量中的值吗?我知道应该有v8调试器功能,但我没有成功实现这一点.如果有人有这方面的工作经验,你能不能帮助我让它工作?谢谢.
apache ×1
browser ×1
javascript ×1
linux ×1
mysql ×1
php ×1
plv8 ×1
postgresql ×1
url ×1
utf-8 ×1