如何在jhipster中将会话级别的字符集设置为utf8

问题描述 投票:0回答:2

在将我的基于jhipster的应用程序部署到云代工厂时(在我的情况下使用ClearDB服务的Pivotal),我没有选择更改DB字符集,也没有更新JDBC参数,因为它共享数据库。数据库的字符集是latin1,我需要它是utf-8才能支持阿拉伯语和希伯来语等语言。

因此,我认为支持这些语言的唯一选择是在创建数据库会话/连接时初始化,例如在sqls下运行:

SET session character_set_client = charset_name;
SET session character_set_results = charset_name;
SET session character_set_connection = charset_name;

如何在jhipster中完成这个我没有看到我们可以设置数据库连接/会话init sqls的地方,如果你有任何其他推荐?

目前发生的事情是来自客户端的阿拉伯语/希伯来语输入数据保存在DB中作为????顺便说一句,如果我将使用MYSQL Workbench更新数据库条目,阿拉伯语/希伯来语值将正确保存并正确显示。

谢谢,拉比亚

mysql utf-8 jhipster pivotal-cloud-foundry cleardb
2个回答
0
投票

数据在INSERTion期间被销毁。

  • 要存储的字节不编码为utf8 / utf8mb4。解决这个问题。
  • 数据库中的列是CHARACTER SET utf8(或utf8mb4)。解决这个问题。
  • 另外,检查读取期间的连接是否为UTF-8。

请参阅http://stackoverflow.com/questions/38363566/trouble-with-utf8-characters-what-i-see-is-not-what-i-stored中的“问号”

每个角色一个问号吗?或者两个(阿拉伯语/希伯来语)?


0
投票

通过创建代理服务解决此问题的解决方法:

1取消绑定clearDB服务(但保留它,只是解开绑定)

2创建新用户提供的服务,该服务将使用自定义uri调用clearDB服务。

请参阅以下命令:

cf create-user-provided-service mysql-db -p '{"uri":"mysql://<uri of the clearDB service>?useUnicode=true&characterEncoding=utf8&reconnect=true"}' 

cf bind-service <app name> mysql-db

cf restart <app name>
© www.soinside.com 2019 - 2024. All rights reserved.