这应该是西班牙语。我用txt格式输入了dictonary中的单词。只有西班牙语被翻译成这样的。事情是我无法搜索一个单词。它找不到任何东西。
如何将mysql
中的这些内容转换为人类可读且可搜索的string
?
CREATE TABLE IF NOT EXISTS `es_words` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`word` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`user` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=660099 ;
INSERT INTO `es_words` (`id`, `word`, `user`) VALUES
(1, 'ÿþa\0\r\0', 0),
(2, '\0a\0-\0\r\0', 0),
(3, '\0a\0a\0r\0ó\0n\0i\0c\0o\0\r\0', 0),
(4, '\0a\0a\0r\0o\0n\0i\0t\0a\0\r\0', 0),
(5, '\0a\0b\0a\0\r\0', 0),
(6, '\0a\0b\0a\0b\0a\0\r\0', 0),
(7, '\0a\0b\0a\0b\0i\0l\0l\0a\0r\0s\0e\0\r\0', 0),
(8, '\0a\0b\0a\0b\0o\0l\0\r\0', 0),
(9, '\0a\0b\0a\0c\0á\0\r\0', 0),
(10, '\0a\0b\0a\0c\0a\0l\0\r\0', 0),
etc
答案 0 :(得分:1)
我不知道很多西班牙语单词,但是看看你的例子中的字符串,似乎这些单词有空字符(\ 0),并且每个字母之间似乎随机插入一些回车符(\ r \ n)。最好清理生成插入查询的任何内容,而不是在我想到之后尝试清理数据库。
据说这个查询将允许您搜索和显示人类可读的值。
SELECT *
FROM (SELECT REPLACE(word, '\0', '') as fixedword from es_words) as t
WHERE fixedword LIKE '%aaronita%'
您也可以使用上述查询的结果来清理表中的值,但我想我会专注于尝试找出插入语句中'\ 0'和'\ r'的来源。