3

我正在向 oracle 数据库插入大量数据。

在该数据库中,文本以 windows-1252 格式存储。

原来要输入的东西很多,都需要转成这种格式。此外,所有这些数据都是阿拉伯语。

有人可以帮我找到一个在线转换器或将阿拉伯语单词编码为 windows-1252 格式的工具吗?

*希望细节足够

--rangana

4

2 回答 2

1

Win32 API 对 MultiByteToWideChar 和 WideCharToMultiByte 允许您分别将代码页编码转换为 Unicode 并将 Unicode 数据转换为代码页编码。这些 API 中的每一个都将用于该转换的代码页的值作为参数。因此,您可以指定给定代码页的值(例如:阿拉伯语为 1256)或使用预定义的标志,例如:

  • CP_ACP:用于当前选择的系统 Windows 代码页
  • CP_OEMCP:用于当前选择的系统 OEM 代码页
  • CP_UTF8:用于 UTF-16 和 UTF-8 之间的转换
于 2012-06-19T05:20:35.917 回答
1

由于 windows-1252 根本不编码阿拉伯字母,因此进行转换的唯一方法是使用某种音译。这与编码转换完全不同(它不会改变字符的身份,只会改变它们的编码表示)。

阿拉伯语有大量的音译(罗马化)方案。几乎所有的都是不可逆的,而且几乎所有的都不适合全自动处理(主要是因为正常的阿拉伯语书写不指示短元音,但大多数音译方案都指示它们,即音译者需要知道单词的发音和插入元音字符)。

您可以通过转换为 windows-1256,然后将 windows-1256 编码数据作为原始字节插入数据库来伪造转换。然后,您需要跟踪数据库中每个值的编码,以便知道哪些字节是 windows-1252,哪些是真正的 windows-1256。这听起来很乱,所以考虑是否可以将数据库转换为使用 UTF-8。

于 2012-06-19T06:16:05.180 回答