我知道 Microsoft Office 使用不同的编码,当有人将文本从 Office 复制并粘贴到 java 文本面板时,它看起来没问题。但随后您将其存储到 MySQL 数据库中并检索它。突然变成了各种垃圾拉丁字符。
我尝试将其转换为 utf-8
在商店之前,但似乎不起作用。
想知道您是否可以检测文本中是否有拉丁字符,因此我可以简单地弹出一个警报,让用户在保存之前知道。
或者,如果有办法禁用 jTextField 仅以 UTF-8 字符显示所有内容,这样当用户从 Word 复制和粘贴时,它会自动显示所有随机代码,而不是看起来很好(在开始时)
示例:当用户在 word 中输入内容并粘贴到 jTextField 时,我们直接传递字符串(注意我们的 sql 数据库是 utf8_general_ci
),然后我们将其提取到 JPanel,我们得到:
â€ââââ‚
最佳答案
我也遇到过类似的问题。首先要做的是找出数据库中到底写入了什么。这对于 MySQL 来说非常简单,只需登录并运行
SELECT HEX( column ) FROM table;
这将为您提供已写入表中的字节。然后您可以使用 an app I wrote正是为了这个目的。获取从 MySQL 返回的十六进制字符串和 give it to the main class使用 -b 标志表示字节。您将获得一大堆输出,希望其中一个是您最初拥有的输出。
一旦您知道它的存储方式,您就可以作为调试的起点。
关于java - 正确地将 Microsoft Office 文档中的复制/粘贴文本存储到 MySQL 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13254739/