单声道上的ASP.Net MVC的UTF希伯来字母编码问题

时间:2017-03-18 16:31:18

标签: mysql asp.net-mvc ubuntu utf-8 mono

我觉得我对这个问题有点过分了。我为朋友开发了一个ASP.Net MVC网站,允许他们粘贴希伯来语单词并进行一些转换/翻译。我使用MySQL作为ASP.Net MVC 5的数据后端。

网站相当简单。该数据库由两个存储字母和翻译的表组成。我使用MySQL EF6作为数据访问层。网站上基本上有三个屏幕,一个用于管理每个表格,另一个用于翻译。

当我在开发环境(VS 2017 / Windows 10)中运行它时,一切都按预期工作。我可以使用希伯来语Unicode字符编辑数据,并将它们正确保存到数据库中。这是一个例子:

Hebrew Screenshot 1

当我单击“保存”时,我希望将这些值保存到数据库中,并且它们可以正常工作。但是,我最近将网站转换为在Mono / Ubuntu环境中运行以进行托管。我使用mod_mono和Apache2进行了环境设置。一切都很完美,除非我保存这样的页面,希伯来字符א被转换成问号(?):

Hebrew Screenshot 2

这是我到目前为止所确定的内容。

  • 我知道Apache / MySQL已正确设置以处理这些值,因为数据显示正常。它只会在我保存时搞砸了。
  • 我也在同一台服务器上运行PhpMyAdmin,当我通过表编辑器修改同一行时,它搞乱了编码。
  • 我尝试将默认编码utf-8添加到Apache配置中,但没有运气。
  • 我尝试使用utf-8的默认编码将全球化添加到web.config,但它没有帮助。

如何解决价值混乱的问题?我需要应用一个简单的解决方案来解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

  • 要存储的字节不编码为utf8 / utf8mb4。解决这个问题。
  • 数据库中的列为CHARACTER SET utf8(或utf8mb4)。解决这个问题。
  • 另外,检查读取时的连接是否为UTF-8。
  • HTML表单应该像<form accept-charset="UTF-8">
  • 一样开始

有关详细信息,请参阅Trouble with utf8 characters; what I see is not what I stored

如果这还不足以解决您的问题,请找到HEX,如&#34中所述;测试数据&#34;在那个链接;然后寻求更多帮助。