Sequel Rails 带有 Snowflake 的 ODBC returns '\x1A' 用于特殊字符

Sequel Rails ODBC with Snowflake returns '\x1A' for special characters

所以我使用 Docker 到 运行 一个 Rails 应用程序,它使用 Sequel 通过 ODBC (snowflake-odbc-2.22.4.x86_64.deb) 连接到 Snowflake。我可以连接到我的 Snowflake 实例并查询 table 很好,但我目前 运行 遇到一个问题,其中任何特殊字符都是 return \x1A的性格。 例如,如果在 Snowflake 中我有这个 table (User): |名字| |-| |яйяйяй|

运行 Rails 中的查询: SELECT fname FROM User

returns

[{
:fname => "\x1A\x1A\x1A\x1A\x1A\x1A"
}]

其中每个特殊字符有 1 个 \x1A

data[:fname].encoding returns ASCII-8BITdata[:fname].force_encoding('UTF-8') returns 一个空字符串。

我用 python 和雪花连接器做了一个类似的查询,它工作正常,所以这让我觉得我的 sequel 配置和 reading/saving 可能有问题雪花的回应。

我尝试将 :encoding => "utf8" 添加到我的 Sequel.odbc(:drvconnect=> SNOWFLAKE_CONN_STR, :encoding => "utf8"),但这并没有改变任何东西。

提前致谢!

尝试设置以下环境变量:

ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US.UTF-8

我们在 Dockerfile 中有这个。