我有一个dumpfilename.sql,我想导入到swift字符串中以执行查询。我的问题是utf8编码无法正常工作。
这是我使用的功能:
if let filepath = Bundle.main.path(forResource: "dumpfilename", ofType: "sql") {
do {
str = try String(contentsOfFile: filepath, encoding: String.Encoding.ascii) //String.Encoding.utf8
str = String(utf8String:str)!
str = self.removeSubStringIn(mainStr: str, fromStr: "/\\*", toStr: "\\*/", includingFromAndTo: true)!
} catch {
// contents could not be loaded
}
} else {
// example.txt not found!
}
这是.sql文件中不起作用的摘录(错误的√©和é出现)
INSERT INTO `Table_CNIType` VALUES (2,0,'Carte d\'identité','CI','','','',1);
INSERT INTO `Table_CNIType` VALUES (2,0,\'Carte d\\\'identité\',\'CI\',\'\',\'\',\'\',1);
我尝试使用无法正常工作的String(contentsOfFile: filepath, encoding: String.Encoding.utf8)
。它使我成为一个空字符串。
只有String.Encoding.ascii
和String.Encoding.macOSRoman
在工作
在终端中,命令文件-I提供=> dumpfilename.sql: text/html; charset=utf-8
编辑1:
可能是text/plain; charset=utf-8
吗?
这是file示例
该文件是使用mysqldump命令生成的,其参数为:'--compact', '--skip-set-charset', '--skip-opt', '--default-character-set=utf8'
迅速的错误消息是:Code=261 "The file “dumpfilename.sql” couldn’t be opened using text encoding Unicode (UTF-8)."
编辑2:
该错误是因为其中有一些像#õgñÚCódñ^J¥]˚m%r9†U*3j–xR+“páπ§
这样的AES加密数据,所以它向我显示了√©
而不是é
。