如何从mySQL中的字符串中提取前2个CHARACTER?

时间:2014-01-07 12:40:32

标签: mysql string utf-8 substring string-length

使用left()或substring()我可以获得前2个字节,它不等于前2个字符。

使用PhpMyadmin,这是我在浏览表格中的字符串值时看到的内容: %D8%A3%D8%B9%D8%B7%D9%8A。 这相当于阿拉伯语单词التقنيات

这是SHOW VARIABLES LIKE'char%';

的输出
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/

我正在使用排序规则:表格和列的utf8_general_ci。

1 个答案:

答案 0 :(得分:0)

“%D8%A3%D8%B9%D8%B7%D9%8A”是URL编码数据。您应该将文本存储为文本,而不进行任何其他编码,以便数据库可以处理。也就是说,当您在phpMyAdmin中查看表中的数据时,您应该看到أعطي而不是%D8%A3%D8%B9%D8%B7%D9%8A。

MySQL中没有以这种格式解码数据的内置函数。您可以define a stored function进行解码,或使用您在客户端软件中使用的编程语言中定义的函数,例如PHP中的urldecode或Java中的URLDecoder类。

相关问题