`
belmount
  • 浏览: 48080 次
  • 性别: 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 的内容(例如 )。 我将来会解决这个问题。

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

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

    C3Projects--BankAccounts

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

    smart_engine:通用SmartCore功能

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

    br-fe-testing

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

    br-frontendtesting-stpete

    练习 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

    br-frontend-testing:火花盒车间

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

    ruby-tuples:从函数式编程中了解元组的Ruby实现

    它们之间的主要区别是Pair始终由2个元素组成-用更少的元素初始化-丢失的元素用nil填充,当用更多的元素初始化-引发ArgumentError 。 您可以用不同的方式初始化它们: Tuple.new(1, 2) Tuple.new([1, 2]) Tuple(1,...

    br-frontend-testing:建立正确的前端测试

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

    br-frontendtesting-stpete:前端设计会议测试工具研讨会

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

    exercise-2:突破开发流程

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

    Reflector 7.3.0.18.rar

    Reflector 最新版 本人试了,还不错

    fewd-testing-workshop:前端设计会议 FEWD 测试研讨会的练习库

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

    撬动救援:每当出现问题时就启动撬动会话

    撬救 Ruby的超快速调试。 (请参阅 ) 介绍 pry-rescue是Ruby的“未处理异常中断”的实现。...ArgumentError : wrong number of arguments ( 2 for 1 ) from /home/conrad / 0 / ruby / pry - rescue / example

    ow:人类的函数参数验证

    人类的函数参数验证 强调 富有表现力的可链接API 大量内置验证 支持自定义验证 Node.js中的自动标签推断 用TypeScript编写 安装 $ npm install ow 用法 如果使用CommonJS,则需要以const ...//=> ArgumentError: Expec

    采集

    采集类型检查集例type =... add ( :not_a_string )# => ArgumentError (:not_a_string must be a String)通用风格type = Stringcls = Collection :: Set [ type ]cls# => "Collection::Set::String"collection = cls .

    dice:Dart的轻量级依赖注入框架

    骰子 Dart的轻量级依赖注入框架。 入门 骰子由两部分组成。 ... 使用模块将实例注入代码的注入器。 以下示例将帮助您入门: 1.... 2....class BillingServiceImpl implements ... throw new ArgumentError ( "payment me

Global site tag (gtag.js) - Google Analytics