iOS / Swift4:即使其中包含一些加密的AES字段,如何也可以将.sql文件转换为格式正确的utf8且不包含错误字符的字符串?

时间:2019-02-06 14:50:38

标签: ios swift encoding utf-8 aes

我有一个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.asciiString.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加密数据,所以它向我显示了√©而不是é

0 个答案:

没有答案