In a Chinese environment, the default UTF-8 encoding causes all ANSI (GBK) encoded Chinese characters to be read incorrectly. Therefore, my Import-Ini needs to add the -Encoding ([System.Text.Encoding]::Default) parameter.
However, when I need to output, I found that the Export-Ini -Encoding ([System.Text.Encoding]::Unicode) parameter actually causes an error and needs to be changed to -Encoding unicode.
PSIni Version: 4.0.1
Mapaler $PSVersionTable
Name Value
---- -----
PSVersion 5.1.19041.7058
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.7058
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Import-Ini
❌ -Encoding ansi
Mapaler Import-Ini "C:\ProgramFree\TotalCMD64\User\User.ini" -Encoding ansi
Import-Ini : 无法处理对参数“Encoding”的参数转换。无法将“System.String”类型的“ansi”值转换为“System.Text.Encoding
”类型。
所在位置 行:1 字符: 64
+ Import-Ini "C:\ProgramFree\TotalCMD64\User\User.ini" -Encoding ansi
+ ~~~~
+ CategoryInfo : InvalidData: (:) [Import-Ini],ParameterBindingArgumentTransformationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Import-Ini
✅ -Encoding ([System.Text.Encoding]::Default)
Mapaler Import-Ini "C:\ProgramFree\TotalCMD64\User\User.ini" -Encoding ([System.Text.Encoding]::Default)
Name Value
---- -----
Associations {Filter1, Filter1_open, Filter1.icon, Filter2...}
user {menu1, cmd1, param1, menu2...}
DirMenu {menu1, cmd1, menu2, cmd2...}
Export-Ini
✅ -Encoding unicode
Mapaler Export-Ini -InputObject $sourceData -Path "C:\ProgramFree\TotalCMD64\User\User.new.ini" -Encoding unicode
❌ -Encoding ([System.Text.Encoding]::Unicode)
Mapaler Export-Ini -InputObject $sourceData -Path "C:\ProgramFree\TotalCMD64\User\User.new.ini" -Encoding ([System.Text.Encoding]::Unicode)
Export-Ini : Cannot validate argument on parameter 'Encoding'. The argument "System.Text.UnicodeEncoding" does not belo
ng to the set "unknown, string, unicode, bigendianunicode, utf8, utf7, utf32, ascii, default, oem" specified by the Val
idateSet attribute. Supply an argument that is in the set and then try the command again.
所在位置 行:1 字符: 1
+ Export-Ini -InputObject $sourceData -Path "C:\ProgramFree\TotalCMD64\ ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidType: (System.Text.UnicodeEncoding:String) [Export-Ini], ArgumentException
+ FullyQualifiedErrorId : InvalidEncoding,Export-Ini
In a Chinese environment, the default UTF-8 encoding causes all ANSI (GBK) encoded Chinese characters to be read incorrectly. Therefore, my Import-Ini needs to add the
-Encoding ([System.Text.Encoding]::Default)parameter.However, when I need to output, I found that the Export-Ini
-Encoding ([System.Text.Encoding]::Unicode)parameter actually causes an error and needs to be changed to-Encoding unicode.PSIni Version: 4.0.1
Import-Ini
Export-Ini