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