`
belmount
  • 浏览: 49280 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ArgumentError (redundant UTF-8 sequence)

 
阅读更多
前几天在windows下用jruby创建了个应用,用了geokit的gem,连接的是sqlserver的数据库。
geokit在jruby下是由于使用的是jdbc-mssql的adapter,名称和matz ruby环境下的不一致,所以会报找不到adapter的错,只用把名称改为SQLSever就可以了。
但是还会出个问题,就是geokit中的geo_scope后不能跟limit,报distance field不识别,看sql log发现jdbc的limit通过生成row_num然后通过row_num in range的搞法搞定,这是jdbc adapter的个bug,懒得理他,直接用array slice搞定。
今天终于搞了个rhel 5的服务器,就忙着将程序迁移到rvm 的1.9.2上。同时改用tiny_tds加activerecord-sqlserver-adapter,结果碰到了ArgumentError (redundant UTF-8 sequence),都是在to_json的时候产生的。
google了一番,有人报这个错给active_support,结果support的开发人员认为这不是他们的bug,把issue的状态变为stale,不做任何更新。我一向认为开源人的敬业精神是不错的,所以这次也继续相信他。从配置上找原因。
对to_json的对象log之后发现都是乱码,觉得这是database connection的问题。查阅了tiny_tds和freetds的文档,发现根本问题是freetds的版本太落后,yum版的根本没有按照tiny的要求更新到9.2。所以把freetds的source 下下来,重新make了一番,问题就神奇般的OK了。
而且在matz ruby下,geokit的limit问题也解决了。
看样子,开源的东西本身还是值得信赖的,关键需要看你有没有能力组合起来。
分享到:
评论

相关推荐

    Chatlog_Ripper:一个帮助你从聊天记录文件中提取 URL 的小程序

    聊天记录开膛手在 WDI 中,我们共享一切。... 如果您收到错误“in `scan': invalid byte sequence in UTF-8 (ArgumentError)”,只需将您的文本日志解析为可以转换为 UTF-8 的内容(例如 )。 我将来会解决这个问题。

    调试日志1

    第一个错误是`ArgumentError: argument --batch_size: conflicting option string: --batch_size`。这个错误通常意味着命令行参数解析时出现了冲突。在启动程序时,确保没有重复指定`--batch_size`选项,或者检查你...

    Boost.Python.ArgumentError: Python argument types in错误解决及Boost安装配置-附件资源

    Boost.Python.ArgumentError: Python argument types in错误解决及Boost安装配置-附件资源

    ArgumentError.md

    ArgumentError.md

    ArgumentError(解决方案).md

    说反话-加强版pta

    argumentError(解决方案).md

    项目中碰到的,记录一下解决方案

    C3Projects--BankAccounts

    self.new(id, initial_balance) :创建一个新实例,并分配实例变量id和'initial_balance' 无法创建带有初始负余额的帐户-这将raise ArgumentError (Google此) #withdraw(amount) :由于ATM交易,输入的金额#...

    oop-basics-accessor-methods

    raise ArgumentError, "Age must be a positive integer" unless new_age.is_a?(Integer) && new_age > 0 @age = new_age end end person = Person.new person.age = 25 # 成功设置 person.age = -5 # 抛出错误 ...

    smart_engine:通用SmartCore功能

    SmartCore :: Engine· ... SmartCore::ArgumentError (继承自::ArgumentError ); SmartCore::FrozenError (继承自::FrozenError ); SmartCore::NameError (继承自::NameError ); SmartCore

    Ruby-FastAttributes将属性与类型添加到类中

    rescue ArgumentError 0 end ``` 这里,`before_set: :to_i`指定了在设置`amount`属性之前调用`to_i`方法。这样,即使输入是字符串,`amount`也会自动转换为整数。 总之,FastAttributes是Ruby开发的一个实用工具...

    br-frontendtesting-stpete

    练习 2:三角形 Kata 三角形可以分为几个维度,其中之一是基于其边长。... 在这种情况下,它应该引发错误 ArgumentError。 奖金 使用affix ,编写测试并构建 App 模块以将 TriangleClassifier 与index.html集成。

    br-fe-testing

    练习 2:三角形 Kata 三角形可以分为几个维度,其中之一是基于其边长。... 在这种情况下,它应该引发错误 ArgumentError。 奖金 使用affix ,编写测试并构建 App 模块以将 TriangleClassifier 与index.html集成。

    ip_as_int:IP地址-整数转换,对作为整数存储的ip地址属性的activemodel和activerecord支持

    IpAsInt IP地址-整数属性的ip属性的整数转换和activerecord支持。...# => ArgumentError: Invalid IP: need 4 parts IpAsInt . ip2int ( '192.168.0.s' ) # => ArgumentError: Invalid IP: illegal format IpAsI

    Reflector 7.3.0.18.rar

    8. **教育工具**:针对教育领域,Reflector提供了额外的功能,如注释工具,教师可以在学生的屏幕上标注,指导学习。 9. **用户体验**:"还不错"的评价表明,Reflector 7.3.0.18在界面设计、操作便捷性和功能性上...

    br-frontend-testing:火花盒车间

    练习 2:三角形 Kata 三角形可以分为几个维度,其中之一是基于其边长。... 在这种情况下,它应该引发错误 ArgumentError。 奖金 使用affix ,编写测试并构建 App 模块以将 TriangleClassifier 与index.html集成。

Global site tag (gtag.js) - Google Analytics