1

我知道 Microsoft Office 使用不同的编码,当有人将文本从 Office 复制并粘贴到 Java 文本面板时,它看起来不错。但是您随后将其存储到 MySQL 数据库中并检索它。它突然变成了各种垃圾拉丁字符。

我试图将其转换为utf-8之前的存储,但似乎不起作用。

想知道您是否可以检测到文本中是否有任何拉丁字符,所以我可以简单地弹出一个警报,让用户在保存之前知道。

或者,如果无论如何要禁用 jTextField 以仅以 UTF-8 字符显示所有内容,这样当用户从 word 复制和粘贴时,它会自动显示所有随机代码而不是看起来很好(在开始时)

示例:用户在 word 中输入内容,然后粘贴到 jTextField,我们直接传递字符串(注意我们的 sql 数据库是utf8_general_ci),然后我们将其获取到 JPanel,我们得到:

ÃÆ'ƒÆ’ÃÆ'‚¢ÃÆ'ƒÂ¢ÃÆ' ¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚¬Ã…¡ÃÆ'‚¬ÃÆ'Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ 'Ã,¢Ã¢â‚

4

1 回答 1

1

我有过类似的问题。首先要做的是找出确切写入数据库的内容。使用 MySQL 非常简单,只需登录并运行

SELECT HEX( column ) FROM table;

这将为您提供已写入表的字节。然后,您可以使用我为此目的编写的应用程序。获取从 MySQL 返回的十六进制字符串,并使用 -b 字节标志将其提供给主类。你会得到一大堆输出,希望其中一个是你最初的输出。

一旦你知道它被存储为什么,你就有了调试的起点。

于 2012-11-07T19:17:40.940 回答