将阿拉伯语单词转换为windows-1252

时间:2012-06-19 05:07:54

标签: encoding character-encoding arabic windows-1252

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

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

事实证明,要输入很多东西,所有这些都需要转换为这种格式。所有这些数据都是阿拉伯语单词。

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

*希望细节足够

- rangana

2 个答案:

答案 0 :(得分:1)

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

  • CP_ACP:用于当前选定的系统Windows代码页
  • CP_OEMCP:用于当前选定的系统OEM代码页
  • CP_UTF8:用于UTF-16和UTF-8之间的转换

答案 1 :(得分:1)

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

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

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