下面是两个用于对证书进行base64编码的相同目的的命令。
从Windows命令行:
powershell "[convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(\"ATSxxx0101:urSY13sm\"))"
结果 QVRTVFNHMDEwMTp1clNZMTNzbQ==
来自powershell:
[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes('ATSxxx0101:urSY13sm'))
结果: QQBUAFMAVABTAEcAMAAxADAAMQA6AHUAcgBTAFkAMQAzAHMAbQA=
结果正常,但是结果powershell错误。但是我的工具只能接受powershell命令。直接Windows命令不起作用。有创意专家吗?
答案 0 :(得分:0)
原因是[Text.Encoding]::UTF8
与[System.Text.Encoding]::Unicode
不同。区别不是缺少System
,而是UTF / Unicode。
Encoding.Unicode
gets an encoding(使用小尾数字节顺序的UTF-16格式。)
Encoding.UTF8
gets an encoding(用于UTF-8格式)。