0

我目前正在编写一个应用程序(App1),它从另一个应用程序(我们称之为App2)远程检索部分文本。全球有多个App2实例,它们都根据本地系统代码页解释其字符串。App2不支持 Unicode。

App1从App2检索文本,没有任何关于文本代码页的提示,但预计在稍后的时间点,将进行手动过程来选择代码页以正确解释文本。

以前自动确定文本代码页的尝试都失败了。

同时,在人工确定之前,这些数据必须存储在 MySQL 数据库中。
存储这些数据的最佳方式是什么?具体来说,什么CHARSETCOLLATION最适合在这里使用?

我相信如果字符对字段的字符集无效,MySQL 将不会容忍将字符插入字段。

如果我可以在插入数据库之前检测代码页并将数据转换为 unicode,那将是理想的,但我不知道如何能够一致且可靠地完成此操作。

4

2 回答 2

3

如果你真的不知道字符集,那么你只能将它存储为二进制数据。这将保留所有内容(没有任何内容被破坏)。在尝试将其用作文本时,您将不得不猜测编码。

于 2011-03-09T10:28:03.053 回答
1

存储这些数据的最佳方式是什么?

唯一明智的方法是 App2 发送信息,即数据的编码方式。

使用该信息,您可以在将其插入数据库之前将其转换为 Unicode。那将是最佳的。

所有多字节库都具有通过查看特定的字节值来猜测编码的功能,但是它们非常不可靠,尤其是当传入的数据可能具有任何编码时。

于 2011-03-09T10:24:05.923 回答