0
当字符串包含特殊字符时,将字符串保存到数据库中的字段时出现奇怪行为。在这个例子中,“á”或“\ xE1”当包含特殊字符时截断活动记录字段
因此,如果该字段是“TESTA”,则保存时保存的字段为“TEST”。
更令人担忧的是,如果该字段被验证为强制性的。我将它设置为“á”,验证通过,但保存空字符串会被保存。使持续记录无效!
我的数据库编码是UTF-8,所以我认为这是一个编码问题。
事实上,如果在控制台上我尝试一个简单的测试,我得到这个错误:
» “TEST \ xE1F” .encode( 'UTF-8')
编码:: UndefinedConversionError: “\ XE1”从ASCII-8BIT到UTF-8
那么,我应该如何正确地在rails/active record中保留特殊字符呢?
感谢您的任何帮助。
如何在模型中设置编码? – Chris
我仍然收到相同的错误。在您的导航控制台中,“\ xe1”.encode('UTF-8')是否会产生错误? – Chris
将其添加到您的控制器和其他使用该特殊字符的文件中。它不会给我任何控制台上的错误。结帐 http://stackoverflow.com/questions/7699018/in-ruby-on-rails-are-encoding-utf-8-and-config-encoding-utf-8-differe –