mysql - Mysqldump 将外来字符替换为 utf8mb4 数据库
问题描述
我环顾了谷歌并阅读了 SO 中的其他一些主题,但到目前为止,没有任何建议对我有用。
这是我的数据库的设置:
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8mb4
character_set_server latin2
character_set_system utf8
ft_query_extra_word_chars OFF
我有一个db_dump.sh
包含这一行的小文件:
TABLELIST_WITH_DATA="
lc_users
lc_history
lc_feedback
"
HOST=sql.myserver.com
PRO=lc_current
DEV=lc_development
STG=lc_staging
ENV=$1
ENV_L=$(echo "$1" | awk '{print tolower($0)}')
FILENAME_DATA=data_$ENV_L.sql
mysqldump -h ${HOST} -u ${!ENV} -p --default-character-set=latin1 --no-create-info --skip-triggers --hex-blob --skip-set-charset ${!ENV} ${TABLELIST_WITH_DATA} > $FILENAME_DATA
我尝试设置不同的字符集
--default-character-set=ut8
--default-character-set=utf8mb4
或删除--skip-set-charset
我所有的尝试仍然产生带有 � 的字符串,而不是正确的重音字符或来自不同字母的字母。似乎没有任何效果,因此欢迎任何想法!
尝试在 MySQL Workbench 中打开此文件时,出现此错误:
选择latin1
会打开文件,但带有类似的字符³êñ¼¶
解决方案
推荐阅读
- expression - 在 SymPy 中,我如何构建一个改变输入表达式的函数?
- python - 将数据框中的日期时间保存为 csv 时保持时区
- azure-active-directory - Ms Teams OnlineMeeting 匿名用户加入认证
- java - 将 XML 文档转换为 ArrayList 时的 NPE
- docker - Windows 容器的代理设置
- api - 使用 API 将数据拉入 PowerBI
- vue.js - Vercel 和 Nuxt 部署上的 FUNCTION_INVOCATION_FAILED 错误
- java - 将反序列化的 java 对象转换为 JSON
- java - 如果套件在 BeforeSuite 中失败,则显示失败
- visual-studio-code - 搜索功能是否需要输入键才能执行?