标题: [问题求助] PowerShell怎样把乱码转为GBK编码? [打印本页]
作者: 小白龙 时间: 2022-8-27 10:37 标题: PowerShell怎样把乱码转为GBK编码?
使用某个命令输出的字符为乱码复制代码
但是输出为文本文件没有乱码, 查看文本文件编码是GBK, 想直接把乱码在命令行输出中显示, 找了下面的代码, 但是输出全是数字, 请路过大佬帮忙, 谢谢
[Text.Encoding]::GetEncoding("GBK").GetBytes([Text.Encoding]::UTF8.GetBytes("ϵͳՒ򻵽ָ��·�"))
作者: hlzj88 时间: 2022-8-27 10:47
http://bcn.bathome.net/s/tool/index.html?down&key=iconv
例子
iconv -c -f utf-8 -t gbk "test.html" > test.ini
作者: 小白龙 时间: 2022-8-27 12:41
回复 2# hlzj88
感谢大佬, 要是在powershell内解决就更好了
作者: flashercs 时间: 2022-8-27 14:37
这样也是乱码:- [Text.Encoding]::GetEncoding("GBK").GetString([Text.Encoding]::UTF8.GetBytes("ϵͳՒ򻵽ָ��·�"))
复制代码
尝试先修改powershell编码后再运行命令:- $outputencoding=[console]::OutputEncoding=[console]::InputEncoding=[system.text.encoding]::GetEncoding('gb2312')
复制代码
或者- $outputencoding=[console]::OutputEncoding=[console]::InputEncoding=[system.text.encoding]::UTF8
复制代码
作者: 小白龙 时间: 2022-8-27 16:10
本帖最后由 小白龙 于 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
作者: 小白龙 时间: 2022-8-27 16:14
本帖最后由 小白龙 于 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))
得到
系统諕蚧到指锟斤拷路顨氾拷
实际应该是
系统找不到指定的路径。
作者: flashercs 时间: 2022-8-27 16:34
- $OutputEncoding = [System.Text.Encoding]::UTF8
- [console]::OutputEncoding = $OutputEncoding
- [console]::InputEncoding = $OutputEncoding
复制代码
作者: 小白龙 时间: 2022-8-27 16:42
回复 7# flashercs
怪了, powershell ise 还是一样的提示
Exception setting "OutputEncoding": "句柄无效。
"
作者: flashercs 时间: 2022-8-27 17:04
本帖最后由 flashercs 于 2022-8-27 17:05 编辑
回复 8# 小白龙
你说的是powershell,不是 powershell_ise;
搞清楚这两个host 是不同的;
提问题先说清楚 ps版本; host版本.
作者: 小白龙 时间: 2022-8-27 17:14
回复 9# flashercs
哦, 感谢大佬提醒,
我一直使用powershell ise 5.1
作者: 小白龙 时间: 2022-8-30 07:31
感觉是不是还有什么编码接近gb2312? 现在只有几个字是乱码了
系统諕蚧到指锟斤拷路顨氾拷
系统找不到指定的路径。
作者: flashercs 时间: 2022-8-30 08:54
回复 11# 小白龙 - [System.Text.Encoding]::GetEncoding('big5')
复制代码
作者: 小白龙 时间: 2022-8-30 11:26
多谢大佬, 试了一下, 还是不行, 真是怪了, 先不搞它了
作者: cui26896 时间: 2022-9-12 14:23
曾在VB ADO SQliet 表查询中遇到过类似的乱码,也是至今找不到解决的办法。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |