sql-server – Perl TDS字符集
发布时间:2020-12-12 16:55:11 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用带有DBD :: Sybase的FreeTDS驱动程序,连接到MS SQL Server.当我查询某些记录的某些值时,我收到此错误: DBD::Sybase::st fetchrow_arrayref failed: OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (9) NUMBER = (99)Server,database Me
我正在使用带有DBD :: Sybase的FreeTDS驱动程序,连接到MS SQL Server.当我查询某些记录的某些值时,我收到此错误:
DBD::Sybase::st fetchrow_arrayref failed: OpenClient message: LAYER = (0) ORIGIN = (0) SEVERITY = (9) NUMBER = (99) Server,database Message String: WARNING! Some character(s) could not be converted into client's character set. Unconverted bytes were changed to question marks ('?'). 这似乎发生在包含特殊Windows字符集字符的记录中,例如卷曲引号,从人们的Outlook和Word消息中复制和粘贴. 不幸的是,我对这个数据库没有任何控制权;在途中消毒输入显然是要走的路,但我无法使用. 我需要更改哪些FreeTDS设置才能成功查询这些记录? 附加信息: 查询在tsql中运行正常.我只通过Perl的DBD :: Sybase接口得到这个错误. (我应该通过其他方式测试吗?我还没有安装PHP或Python的专业知识.我有jTDS并可以使用它,但我认为这是一个完全不同的实现,而不是FreeTDS的接口.) 添加 client charset = UTF-8 到我的freetds.conf文件导致“内存不足!”印到STDERR. 解决方法我最近遇到了类似的问题.在你的freetds.conf文件中,你需要一个 [DataSourceName] host = <IP Address> port = <databaseport> #version 8.0 seems to work with sql server 2005 tds version = 8.0 client charset = UTF-8 客户端charset在这里是重要的一点. 我在Linux上用Perl做这个,我希望UTF-8也是最好的选择,因为Perl是客户端 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |