2013-05-04 58 views
1

我正在写一个快速脚本来删除数据库中的重复项。我在开始之前从phpMyAdmin导出数据库,以防万一我把东西搞乱了,我注意到一些行中有些奇怪的字符。我想知道可能会造成这种情况?记录是从由bar(“|”)分隔的明文文件上传的。我不是上传纯文本文件的人,所以我不知道在上传/导入之前原始文件是否被更改,但是我使用nothng而不是Notepad ++。我知道原始的平面文件永远不会包含这样的东西。导出数据库时奇怪的charachters

而且,我做了一个SELECT * FROM records WHERE case_number =“A S“IOE“5ø.lÕ''éíÿ”的OoeqDþ'而事实证明,我的记录,所以它不是我的文本编辑器。这些都是实际排在DB。

任何人都可以给您一个建议,以什么这可能是,可能是什么造成了它,我如何能够解决?

我欢迎任何建议在所有。感谢您寻找。

编辑:

我的DB排序规则设置为latin1_general_ci

enter image description here

enter image description here

+2

你有没有试过把这个视为UTF-8?编码 - >以UTF-8编码。如果SQL转储混乱了,并且mysql数据混乱了,最后可以尝试更改数据库中某些列的数据类型。 – 2013-05-04 02:54:24

+0

@DavidChen当用UTF-8查看时,正常的字符也会变成乱码。 – 2013-05-04 03:07:36

+0

您的db归类可能与'case_number','wild1'列归类不同。如果他们有'varchar'类型 – Amir 2013-05-04 03:27:53

回答

1

这个问题似乎与是与被设置为你的数据库collation。例如,假设你上传了一个完全正确的文件到MySQL中,但是如果说你的数据最终保存的字段的排序规则是在中文中。然后,当您尝试检索和呈现内容时,它将显示编码问题。

也尝试查看PhpMyAdmin中的内容并查看它的外观。

+0

我会说你在正确的轨道上,但是,3490到3497行看起来很好。之后的行看起来是空的,所以它可能从一开始就是一个初始加载错误。 – 2013-05-04 03:00:32

+0

我看到这个问题发生在随机队列中,当排序规则出现问题时。虽然我同意这可能是一个初始加载错误。 – raidenace 2013-05-04 03:01:35

+0

@Raidenace感谢您的建议。我对数据库了解不多,但是我发现它目前设置为latin1_general_ci。我应该换成ascii还是什么?我发布了截图。 – 2013-05-04 03:04:53