iOS / Swift4: Как преобразовать файл .sql в хороший формат utf8 в строку без плохих символов, даже если он содержит некоторые зашифрованные поля AES? - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть 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?
Вот файл пример

Файл генерируется командой mysqldump с параметрами: '--compact', '--skip-set-charset', '--skip-opt', '--default-character-set=utf8'

Сообщение об ошибке swift: Code=261 "The file “dumpfilename.sql” couldn’t be opened using text encoding Unicode (UTF-8)."

РЕДАКТИРОВАТЬ 2:
Ошибка заключается в том, что в нем есть некоторые зашифрованные данные AES, например #õgñÚCódñ^J¥]˚m%r9†U*3j–xR+“páπ§, поэтому он показывает √© вместо é, например.

...