[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] PowerShell怎样把乱码转为GBK编码?

使用某个命令输出的字符为乱码
  1. ϵͳՒ򻵽ָ��·�
复制代码
但是输出为文本文件没有乱码, 查看文本文件编码是GBK, 想直接把乱码在命令行输出中显示, 找了下面的代码, 但是输出全是数字, 请路过大佬帮忙, 谢谢


[Text.Encoding]::GetEncoding("GBK").GetBytes([Text.Encoding]::UTF8.GetBytes("ϵͳՒ򻵽ָ��·�"))

曾在VB ADO SQliet 表查询中遇到过类似的乱码,也是至今找不到解决的办法。

TOP

多谢大佬, 试了一下, 还是不行, 真是怪了, 先不搞它了

TOP

回复 11# 小白龙
  1. [System.Text.Encoding]::GetEncoding('big5')
复制代码
微信:flashercs
QQ:49908356

TOP

感觉是不是还有什么编码接近gb2312?  现在只有几个字是乱码了

系统諕蚧到指锟斤拷路顨氾拷
系统找不到指定的路径。

TOP

回复 9# flashercs


    哦, 感谢大佬提醒,
我一直使用powershell ise 5.1

TOP

本帖最后由 flashercs 于 2022-8-27 17:05 编辑

回复 8# 小白龙


    你说的是powershell,不是 powershell_ise;
搞清楚这两个host 是不同的;
提问题先说清楚 ps版本; host版本.
微信:flashercs
QQ:49908356

TOP

回复 7# flashercs


    怪了, powershell ise 还是一样的提示

Exception setting "OutputEncoding": "句柄无效。
"

TOP

  1. $OutputEncoding = [System.Text.Encoding]::UTF8
  2. [console]::OutputEncoding = $OutputEncoding
  3. [console]::InputEncoding = $OutputEncoding
复制代码
微信:flashercs
QQ:49908356

TOP

本帖最后由 小白龙 于 2022-8-27 16:15 编辑

回复 4# flashercs


   

[Text.Encoding]::GetEncoding("GBK").GetString([Text.Encoding]::UTF8.GetBytes($err))

[Text.Encoding]::GetEncoding("GB2312").GetString([Text.Encoding]::UTF8.GetBytes($err))
得到
系统諕蚧到指锟斤拷路顨氾拷
实际应该是
系统找不到指定的路径。

TOP

本帖最后由 小白龙 于 2022-8-27 16:23 编辑

回复 4# flashercs

修改PS编码后运行直接报错

Exception setting "InputEncoding": "句柄无效。
"
At line:1 char:19
+ ... tencoding = [console]::OutputEncoding = [console]::InputEncoding = [s ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: ( [], SetValueInvocationException
    + FullyQualifiedErrorId : ExceptionWhenSetting

TOP

这样也是乱码:
  1. [Text.Encoding]::GetEncoding("GBK").GetString([Text.Encoding]::UTF8.GetBytes("ϵͳՒ򻵽ָ��·�"))
复制代码
尝试先修改powershell编码后再运行命令:
  1. $outputencoding=[console]::OutputEncoding=[console]::InputEncoding=[system.text.encoding]::GetEncoding('gb2312')
复制代码
或者
  1. $outputencoding=[console]::OutputEncoding=[console]::InputEncoding=[system.text.encoding]::UTF8
复制代码
微信:flashercs
QQ:49908356

TOP

回复 2# hlzj88


    感谢大佬, 要是在powershell内解决就更好了

TOP

http://bcn.bathome.net/s/tool/index.html?down&key=iconv

例子
iconv -c -f utf-8 -t gbk "test.html" > test.ini
目的,学习批处理

TOP

返回列表