【问题标题】:The cyrillic encoding issue in play framework播放框架中的西里尔编码问题
【发布时间】:2014-11-27 14:10:44
【问题描述】:

local 环境中,所有带有编码的东西都可以,但是当我制作 dist 并在服务器 (ubuntu) 上运行我的应用程序并执行 POST 时,请求正文中 json 的西里尔字符会转入└ я▀п╡я└п╟я▀я└'(原来只是终端问题)在控制器中:

def editUser = SecuredAction(WithRole(ADMIN)).async(parse.json) { implicit request =>
  log.debug(request.body) // here I have └я▀п╡я└п╟я▀я└' instead of cyrillic characters

我检查了请求标头:

Accept:application/json
Accept-Encoding:gzip, deflate
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Content-Length:192
Content-Type:application/json; charset=UTF-8

也许你们中的一些人遇到过这种情况。谢谢!

【问题讨论】:

  • 你能检查一下日志中的确切字节是多少吗?
  • 不幸的是,我不知道如何以字节为单位打印原始请求。工商管理硕士你能告诉我吗?
  • 用十六进制编辑器打开日志文件,将十六进制数据复制到这里。另外,您使用什么终端模拟器连接到服务器?是否设置为 KOI-R?

标签: mysql playframework character-encoding playframework-2.3


【解决方案1】:

问题出在mysql,这里是答案:

我添加了useUnicode=true&characterEncoding=UTF-8:

db.default.url="jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=UTF-8"

但这没有帮助。于是我在服务器上添加了my.etc:

[mysql]
default-character-set=utf8

[mysqld]
character-set-server=utf8

好的!

【讨论】:

    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 2013-02-25
    • 2023-03-25
    • 2011-07-29
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多