我想用表情符号导出我的数据库,但我的导出问题。当我导出表格时,表情符号被"?"。
取代例如:
当我导出和导入时,我有这个:
我检查了我的桌子(utf-8):
我使用Sequel Pro导出和导入。
但是,如果我尝试使用DataGrip,并且直接使用"?",我从未看过表情符号:
答案 0 :(得分:1)
运行查询之前,请运行
class ViewController: UIViewController {
let testString : DataResponse!
override func viewDidLoad() {
super.viewDidLoad()
let accessToken = "1234"
let authorizationRequestHeader = "https://www.somewhere.com=\(accessToken)"
guard let url = URL(string: authorizationRequestHeader) else {
print("Error")
return
}
let session = URLSession.shared
session.dataTask(with: url) { (stringData, response, Error) in
testString = try! dataResponse.decode(DataResponse.self, from:stringData!)
print("Number of records: \(testString.data.budgets.count)")
}.resume()
print("Number of records: \(testString.data.budgets.count)")
}
为什么?
简而言之。
首先,表情符号通常占用4个字节,但是mysql的set names utf8mb4;
是utf8
的别名,使用1到3个字节(即最大3个字节),这无法理解表情符号char 。这样,您会看到一个“?”在你的结果。 utf8mb3
可以完成这项工作,因为每个多字节字符最多需要四个字节。
第二,utf8mb4
将设置三个会话变量,例如
set names utf8mb4
这将协调服务器,客户端和结果字符集之间的障碍,因此我们可以正确查看表情符号。
有关更多信息,请参见文档
https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html