如何使用unicode字符串作为表名在mysql中创建表?

如何使用unicode字符串作为表名在mysql中创建表?,mysql,character-encoding,Mysql,Character Encoding,表_名称:Jm™–ÍhÀ#ʵfèxÈ220;Ü,ÀDÐ* 我想在mysql5中创建一个表名为table_的表。 ID、NAME是表中给定的列名。是否有可能创建 “您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以了解要使用的语法是否正确,该语法应接近'\x0fJm\ufffd\x12\ufffd\u0340\x11h\ufffd\ufffd\ufffd}.\ufffd\u02b5\x0cf\ufffdx\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\

表_名称:Jm™–ÍhÀ#ʵfèxÈ220;Ü,ÀDÐ*

我想在mysql5中创建一个表名为table_的表。 ID、NAME是表中给定的列名。是否有可能创建


“您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以了解要使用的语法是否正确,该语法应接近'\x0fJm\ufffd\x12\ufffd\u0340\x11h\ufffd\ufffd\ufffd}.\ufffd\u02b5\x0cf\ufffdx\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\ufffdD^\ufffd*(ID INT,名称VARCHAR(10),'在第1行)'”

建议您使用十六进制()加密字符串的名称。这将避免任何可能导致致命错误的讨厌字符,如空格、零字节、斜杠、反斜杠、引号、反斜杠等


我检查了BASE64,但它有一个潜在的严重问题,因为它包含“/”

,在费解了很多之后,我简单地将整个字符串转换为BASE32格式,因为它的字符集包含MySQL中接受为表名的值,但应该对输出字符串的长度进行限制,否则“=”将在字符串的末尾追加。

我想在将它存储到云服务器之前加密表名,以便提高安全性(时间因素被消除),并且我有元数据来解密ITIF,我们考虑字符串表名的十六进制值,问题中提到了这一点,那么输出字符串的长度超过64个字节,这在SQL64中是不允许作为表名的。您需要放弃一些东西——一些字节或长度。感谢Rick James提出BASE64的想法。我没有将其转换为BASE64,而是将其转换为BASE32,从而避免了字符串中的“/”。