Rails - 如何修复/转换错误的字符串值?

时间:2016-07-29 10:15:16

标签: mysql ruby-on-rails ruby string encoding

我最近面临这个问题:

var list = ['a', ['a','b','c',['a','b','c']],'b', 'c'];
			var printList = function(name,list){

				 for(var i=0;i< list.length;i++){

				 	   if(Array.isArray(list[i]))
				 	   	   {
				 	   	   		printList(name+'.'+i,list[i]);

				 	   	   }
				 	   	   else{

				 	   	   	   document.write(name+'.'+i+'.'+list[i]+'<br/>');
				 	   	   	
				 	   	   }
				 	   	   	
				 }
			}

			printList('foo',list);

我在SO上发现了很多类似的主题,但大多数都与MySQL有关。是否有一种通用的方法(方法)可以自动从输入的字符串中删除&#34;错误的&#34; /不正确的字符,所以我可以将它们保存到MySQL?

提前谢谢。

4 个答案:

答案 0 :(得分:3)

如果这是需要4个字节的字符的问题,则需要使用

encoding: utf8mb4
collation: utf8mb4_bin

在database.yml

答案 1 :(得分:1)

确保Column,Database和Application具有相同的排序规则/编码集。

  1. MySQL: #include <inttypes.h> ... fprintf(stdout, "x = %" PRIu32 "\n", (coordinates & 0x3FF)); fprintf(stdout, "y = %" PRIu32 "\n", ((coordinates >> 10) & 0x3FF)); fprintf(stdout, "z = %" PRIu32 "\n", ((coordinates >> 20) & 0x3FF));
  2. ActiveRecord: http://dev.mysql.com/doc/refman/5.7/en/charset-column.html
  3. Rails ActiveRecord::Base.connection.collation
  4. 还可以尝试在控制台config.encoding sets up the application-wide encoding. Defaults to UTF-8.

    中玩游戏

答案 2 :(得分:0)

试试这个。使用以下代码行修改database.yml

encoding: utf8

希望这会有所帮助。

答案 3 :(得分:0)

RoR:application_controller.rb

  def configure_charsets
    response.headers["Content-Type"] = "text/html; charset=utf-8"
    suppress(ActiveRecord::StatementInvalid) do
      ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
    end
  end