使用Rails和Postgresql处理'text'字段中的空字符

Bel*_*lly 5 ruby-on-rails utf

我最近在我的rails应用程序上进行了一系列测试,其中包含各种输入,我发现了传入请求中的空字符如何处理的问题.我的应用程序由Postgresql 8.4数据库支持.事实证明,Postgresql不支持在标准"text"或"varchar"字段中存储空字符.但是,当我尝试通过rails存储其中包含空字符的字符串时,默认行为似乎是在空字符后截断字符串.我认为这是一个问题,因为在截断发生之前验证了字符串.可以通过插入空字符来绕过诸如长度之类的事物的验证,因为ruby可以完美地处理它们并且截断仅发生在插入上.

我正试图找出处理这些输入的最佳方法.对我来说理想的行为就是在处理无效的UTF-8字节时抛出异常.现在,我能想到的唯一选择是显式检查每个输入字符串是否为空字符.我宁愿采用一种通用方法,但我不确定在哪里开始寻找.修补postgresql适配器来检查这是一个选项吗?还是有一些我一直缺少的标准方法?