目前我正在开发Ruby on Rails web应用程序(开源软件)。我遇到的问题,而读取外文字符在我的表数据,既使用phpmyadmin和mysql工作台。
RoR应用程序正在使用一个InnoDB类型的数据库。所有的表都是完全使用utf-8和utf8_general_ci构建的。这一点得到了证实,因为我已经尝试将整个数据库保存为.sql并搜索了拉丁编码。没有任何拉丁编码出来。
我的机器版本如下:- php 5.4, mysql 5.5.36
- rails 2.3.8, ruby 1.8.7
尝试了几种解决方案,包括:
试图在development.rb中添加'encoding: utf8'。"rake db:create"没有问题,但是当使用gem安装插件时就有问题了。错误是"找不到数据库适配器"。我搜索了错误并检查了我的开发。如果适配器确实正确,那么代码中的所有格式也都是正确的。
尝试在environment .rb中添加encoding_internal:: encoding_utf8, encoding_external:: encoding_utf8
试图将服务器连接排序(phpmyadmin中的着陆页)从utf8mb4_general_ci更改为utf8_general_ci,但出现了"加载"消息,即一直挂起。它似乎永远不会改变,即使mysql重新启动在Xampp控制台
应用程序的理想环境是rails 2.3.8和ruby 1.8.7,因此我无法升级它们中的任何一个。
我确实点击了'变量'选项卡在phpmyadmin,但不知道哪一部分要改变。为此,我想知道我们是否必须将所有非utf8,例如拉丁语,二进制等更改为utf8…换句话说,使所有设置仅由utf8组成?
不需要的垃圾字符是像这样的'شتپپ'而不是预期的外国字符。预期的外部字符在视图(web浏览器)中正确显示,但在phpmyadmin中不显示。
我对mysql, phpmyadmin和RoR配置非常陌生。请帮助。
谢谢。
编辑:我还注意到,如果我以预期的字符上传数据,它将显示为它在数据库中(这是我想看到的字符)。
这个问题的解决方案是将phpMyAdmin中的所有服务器变量配置为utf8,并确保将这些行添加到Xampp文件夹中mysql文件夹下的my.ini中。
在[mysqld]行之后,添加:
character-set-server = utf8
skip-character-set-client-handshake
重新启动服务器并重新加载页面。