使用老挝语从SQL Server 2014导出数据[编码/排序规则问题]

强盗

我在老挝使用的数据库有非常大的备份(.BAK),我在SQL Server 2014 Express(本地)服务器上还原了该数据库。这是一个数据库,其中有许多列,其中包含老挝文本。当使用数据库的人通过客户端应用程序(某种泰国会计程序)访问它时,将显示字体设置为Saysettha(这是带有老挝字符的Unicode字体)时,他们可以看到正确显示的所有老挝数据。

但是,我试图从SSMS导出表中的数据(通过简单的文本或csv文件,因为导出过程需要简单且可重复),并且数据从未正确显示。甚至当我在SSMS中执行表查询时也没有。

我知道这可能是编码/排序规则的问题。列存储在VARCHAR列中。我尝试过将它们转换为NVARCHAR列,但这并不能解决问题。我还尝试将列归类为老挝归类(还原备份后,服务器归类设置为Thai_CI_AS);

SSMS试用

我试图将输出表另存为具有不同编码的CSV和TXT文件,但是当我在记事本++中打开它们时,我看到了相同的错误字符。

不幸的是,由于没有在我的笔记本电脑上运行客户端软件,因此我没有文本的外观示例。

理想情况下,我将能够以UTF-8编码导出列。

戴维·卡里(David Cary)

我的理解是,老挝文本通常以UTF-8编码,UTF-16编码或代码页1133编码存储。

当查看应用程序使用与存储数据时相同的编码时,它看起来不错。不幸的是,有时未告知查看应用程序确切使用了哪种编码,因此它“有帮助”地尝试猜测,有时却猜错了。通常,对于看显示器的人来说,错误的猜测是显而易见的-字母甚至不是来自正确的语言。

更糟糕的是,当您告诉应用程序从数据库中导出数据,而不是简单地导出文本的原始字节时,该应用程序可能会“有帮助地”将数据转换为不同的编码。如果应用程序碰巧知道数据库中数据的实际编码,则在导出时转换为UTF-16或UTF-8效果很好;否则,导出的数据通常会被破坏并且无法使用。

有时,最难解决的问题是那些系统实际运行正常的问题,但是我(错误地)认为存在问题。有时由于我用来查看问题的工具中的缺陷而发生这种情况。如果您在Notepad ++中看到的大多数是老挝字符,或者您可以更改Notepad ++的编码,直到您看到主要是老挝的字符,那么我怀疑您的文本或csv文件中的数据以及Notepad ++猜测或通过Encoding-> Encode设置的编码可能是正确的。

有什么方法可以让您查看数据库是否确实在正确地存储,处理,导出数据,以及客户端应用程序是否正确显示了数据,但是记事本或SSMS中的渲染故障不正确地处理了一些重音符号分数?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

SQL Server 2014 导出 CSV 文件问题

Microsoft SQL Server中的波兰语编码

更改SQL Server 2012数据库的排序规则

使用SSIS 2012将数据从Sql Server 2014导出到Excel文件

如何在SQL Server数据库中使用UTF-8排序规则?

SYBASE中土耳其语SQL排序规则的问题

SQL Server Pivot 排序问题

如何使用SQL Server 2014按域名排序?

在与2012兼容的备份文件中导出SQL Server 2014数据库(2008兼容)

SQLite到SQL Server 2008的排序规则

非欧洲语言的SQL Server排序规则

SQL Server将服务器链接到PostgreSQL土耳其语字符问题

SQL Server 2008 R2 中不同数据库排序规则之间的排序规则冲突

IF语句中的SQL Server排序规则问题(消息468,级别16,状态9)

如何在SQL Server数据库中插入波斯语单词?

使用查询以目标数据从Microsoft SQL Server导出数据

SQL Server 2014:使用OpenXML和BulkColumn从XML提取数据

SQL Server sqlcmd导出/批量插入问题

在 SQL Server 2014 中查询 XML 数据

在SQL Server中允许希伯来语字符

在SQL Server中更改数据库排序规则的风险和影响

SQL SERVER:为临时表定义相同的数据库排序规则

在 SQL Server 2014 中执行数据包含脚本时出现问题

在 SQL Server 2014 中将 XML 数据转换为关系格式时遇到问题

使用生成脚本从SQL Server 2012导出日期数据

如何使用存储过程参数在 SQL Server 中存储阿拉伯语?

SQL Server-使用错误的编码检索数据

从MS SQL Server导出数据的更好方法

在SQL Server中将数据导出为INSERT INTO