У меня есть 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áπ§
, поэтому он показывает √©
вместо é
, например.