1
我有一个MySQL
的SQL
文件,它编码在UTF8
中,被称为data.sql
(它由mysqldump
命令生成)。如何在PowerShell中以正确的编码处理文件?
如果我在
cmd.exe
控制台中运行以下操作,该文件将被正确处理。mysql --defaults-file=mysql.update2.ini --batch --raw --database=test1 --default-character-set=utf8 < "data.sql"
如果我运行在一个
powershell
控制台的数据被插在错误的编码以下(导致??
,而不是与附加符号字符)。Get-Content "data.sql" | & 'mysql' --defaults-file=mysql.update2.ini --batch --raw --database=test1 --default-character-set=utf8
如果我运行相同的PowerShell ISE中,脚本导入与正确的编码。
所以SQL文件处理,使得具有变音符号的字符,如果运行的powershell
脚本(使用powershell
控制台)正确插入如何修复powershell
脚本?
我曾尝试的Get-Content
-Encoding
参数设置为UTF8
,ASCII
,Unicode
或OEM
但都没有导致正确导入数据。
注
- 所述的
chcp
的cmd.exe
控制台返回852
,同为powershell
控制台以及用于Powershell的ISE。 - 的
SQL
脚本包含描述像/*!40101 SET NAMES utf8 */;
- 在两种情况下
mysql.update2.ini
文件包含host
,port
,仅user
和password
设置旨在编码线。
我在'windows-1250'上有ISE,在'us-ascii'上有控制台。在设置'$ OutputEncoding = [System.Text.Encoding] :: GetEncoding(1250)'后,它按照预期导入。 – alik