0

我最近试图改变我们公司的旧程序。对我来说最大的困难之一是旧程序是用 Borland C++ 编写的,它有自己的方式连接到 SQL Server 2000 数据库。

8 年后,我正试图退出这个项目。但是当我查看数据库时,我吓坏了!

整个数据库使用的是一种模糊的语言,应该是波斯语。

我将给您部分数据库转换为 SQL Server 2005,以便您自己查看。我花了很多天试图弄清楚如何解码这些数据。但到目前为止,还没有任何结果。

链接到示例数据库文件

因此,如果您能告诉我如何在 Microsoft C#.net 中使用它们,我们将不胜感激。

这些是用于它们的数据类型: 在此处输入图像描述

这就是它的外观:

在此处输入图像描述

非常感谢。

4

1 回答 1

0

1)分析现有程序和原始数据库

尝试弄清楚 C++ 程序如何在数据库中存储波斯语文本。在原始服务器、数据库和列级别上定义的排序规则是什么。

C++ 程序是否转换要从数据库存储和检索的数据?如果是这样,找出方法。

该程序很可能以波斯语显示数据,但没有以兼容的方式存储它。或者它使用支持自定义编码的自定义字体。这一切都需要分析。

2) 屏幕截图看起来好像所有波斯语都被编码为高于 CHAR(128) 的 ASCII 字符。

如果这是标准化编码还是自定义创建的?

3) 要迁移数据库,您很可能需要将映射原始字符的数据转换为 Unicode 字符。

首先使用支持 Unicode 的列 (NVARCHAR, NVARCHAR(MAX)) 而不是 CHAR 和 VARCHAR 重新创建表,后者仅支持拉丁语或扩展拉丁语。

4) 即使您成功迁移数据,由于字体设置或操作系统支持,SSMS 也可能无法正确显示存储的数据。

我在我的博客上总结了在 SSMS 中显示 Unicode 的困难。

但首先,您需要调查原始数据库和应用程序。

于 2012-11-14T10:57:02.723 回答