我有MySQL
的{{1}}文件,该文件在SQL
中编码,名为UTF8
(由data.sql
命令生成)。
如果我在mysqldump
控制台中运行以下文件,则说明文件已正确处理。
cmd.exe
如果我在mysql --defaults-file=mysql.update2.ini --batch --raw --database=test1 --default-character-set=utf8 < "data.sql"
控制台中运行以下内容,则会以错误的编码插入数据(导致powershell
而不是带有变音符号的字符)。
??
如果我从Powershell ISE运行相同的代码,则会使用正确的编码导入脚本。
如何修复Get-Content "data.sql" | & 'mysql' --defaults-file=mysql.update2.ini --batch --raw --database=test1 --default-character-set=utf8
脚本以便处理SQL文件,以便在作为powershell
脚本(使用powershell
控制台)运行时正确插入带有变音符号的字符?< / p>
我尝试将powershell
的{{1}}参数设置为-Encoding
,Get-Content
,UTF8
或ASCII
,但这些参数均未导致正确导入的数据。
注释
Unicode
控制台中的OEM
返回chcp
,cmd.exe
控制台以及Powershell ISE也是如此。852
脚本包含描述预期编码的行,如powershell
SQL
文件仅包含/*!40101 SET NAMES utf8 */;
,mysql.update2.ini
,host
和port
设置。答案 0 :(得分:4)
iso-8859-1
中的Powershell ISE输出和us-ascii
中的控制台
至少在我的电脑上,您可以通过检查变量$OutputEncoding
您可以更改此变量
$OutputEncoding = New-Object -typename System.Text.UTF8Encoding
然后它应该在Powershell ISE和Powershell控制台中都可以使用