【问题标题】:Incorrect encoding using jruby with datamapper使用带有数据映射器的 jruby 编码不正确
【发布时间】:2013-04-07 20:18:20
【问题描述】:

我正在尝试使用 jruby 和 datamapper 从 2008r2 MSSql 服务器获取数据。
到目前为止,我遇到的唯一问题是 jruby 中的正确字符编码。
数据库使用 Polish_CI_AS 排序规则,测试字段填充:"ą ę ś ć"
从 jruby 中获取该字段会导致:"uFFFD uFFFD uFFFD uFFFD" 这是 utf-8 的默认替换字符串。
我尝试将 -E 变量设置为 windows-1250,它会更改显示的字符,但与在 Utf-8 中它们的显示方式相同。还尝试包含 # encoding: Windows-1250,但也无济于事。
我很确定它与 datamapper 或 db 连接有关,但 jdbc 不支持 (AFAIK) 编码变量。

更新

我的连接字符串:DataMapper.setup(:default, 'sqlserver://servername/database;instance=InstanceName;domain=DOMAIN')

【问题讨论】:

标签: sql-server jdbc jruby datamapper


【解决方案1】:

该连接适用于 MS JDBC,datamapper 使用 jTDS,它默认使用 UTF8 编码。

我检查了 jTDS 文档,发现我需要在连接字符串的末尾添加:charset=cp1250; 属性。现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    相关资源
    最近更新 更多