MYSQL将HEX喜欢的字符串转换为人类可读的字符串

时间:2014-04-23 16:14:03

标签: mysql sql

这应该是西班牙语。我用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

1 个答案:

答案 0 :(得分:1)

我不知道很多西班牙语单词,但是看看你的例子中的字符串,似乎这些单词有空字符(\ 0),并且每个字母之间似乎随机插入一些回车符(\ r \ n)。最好清理生成插入查询的任何内容,而不是在我想到之后尝试清理数据库。

据说这个查询将允许您搜索和显示人类可读的值。

SELECT * 
FROM (SELECT REPLACE(word, '\0', '') as fixedword from es_words) as t
WHERE fixedword LIKE '%aaronita%'

您也可以使用上述查询的结果来清理表中的值,但我想我会专注于尝试找出插入语句中'\ 0'和'\ r'的来源。