找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 1391|回复: 7

[问题求助] powershell 联网脚本 中文乱码

[复制链接]
发表于 2025-10-23 17:02:43 | 显示全部楼层 |阅读模式
本帖最后由 bangyou 于 2025-10-23 17:22 编辑

通过win激活代码 irm https://get.activated.win | iex
发现脚本都可以放在云端,但是如果有是中文一直是乱码,

下面是云端代码:
  1. if (-not $args) {
  2.     Write-Host ''
  3.     Write-Host 'Need help? Check our 我是中文: ' -NoNewline
  4.     Write-Host '乱码' -ForegroundColor Green
  5.     Write-Host ''
  6. }

  7. & {
  8.     $ws = New-Object -ComObject WScript.Shell  

  9.     $wsr = $ws.popup("你好吗?",5,"我的窗口",1 + 64)
  10. } @args
复制代码
云端uft-8地址:https://www.htmlonline.cn/utf8
云端ansi地址:https://www.htmlonline.cn/ansi

本地管理员powershell 运行:
irm https://www.htmlonline.cn/utf8 | iex
irm https://www.htmlonline.cn/ansi | iex

求高手指点一两,先谢过了
发表于 2025-10-23 18:07:29 | 显示全部楼层
本帖最后由 flashercs 于 2025-10-23 18:24 编辑
  1. [Text.Encoding]::UTF8.GetString((iwr -Uri "https://www.htmlonline.cn/utf8" -UseBasicParsing).Content)|iex
复制代码
  1. [Text.Encoding]::GetEncoding(0).GetString((iwr -Uri "https://www.htmlonline.cn/ansi" -UseBasicParsing).Content)|iex
复制代码
兼容win7 ps2.0
  1. [Text.Encoding]::UTF8.GetString((New-Object System.Net.WebClient).DownloadData('https://www.htmlonline.cn/utf8'))|iex
复制代码
  1. [Text.Encoding]::GetEncoding(0).GetString((New-Object System.Net.WebClient).DownloadData('https://www.htmlonline.cn/ansi'))|iex
复制代码
irm和iwr 两个cmdlet 在 ps5.1 默认编码是ansi, pwsh 7 默认编码是utf8
发表于 2025-10-23 22:55:58 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-10-23 23:12 编辑

回复 1# bangyou

以下代码用 win8+powershell 4 测试通过;用 win10+powershell 5.1 测试通过...

  1. [text.encoding]::utf8.getString((iwr "https://www.htmlonline.cn/utf8").rawContentStream.toArray())|iex
  2. [text.encoding]::default.getString((iwr "https://www.htmlonline.cn/ansi").rawContentStream.toArray())|iex
复制代码
 楼主| 发表于 2025-10-24 10:37:04 | 显示全部楼层
回复 2# flashercs

感谢,,,
 楼主| 发表于 2025-10-24 10:37:48 | 显示全部楼层
回复 3# aloha20200628


    谢谢,可以,
 楼主| 发表于 2025-10-29 09:41:25 | 显示全部楼层
回复 2# flashercs
老师,您好,这个不能修改云端的代码啊

本地还是只运行:
irm https://www.htmlonline.cn/utf8 | iex
irm https://www.htmlonline.cn/ansi | iex

试过用AI搜索,没有结果
发表于 2025-10-29 14:05:18 | 显示全部楼层
回复 6# bangyou

修改云端代码 应该上传 而不是下载
 楼主| 发表于 2025-10-29 22:27:01 | 显示全部楼层
  1. # 云端代码 - 使用字节数组避免编码问题
  2. function ConvertFrom-ByteArray {
  3.     param([byte[]]$Bytes)
  4.     return [System.Text.Encoding]::UTF8.GetString($Bytes)
  5. }

  6. if (-not $args) {
  7.     Write-Host ''
  8.     Write-Host 'Need help? Check our ' -NoNewline
  9.    
  10.     # "我是中文" 的UTF-8字节数组
  11.     $chineseBytes1 = @(0xE6, 0x88, 0x91, 0xE6, 0x98, 0xAF, 0xE4, 0xB8, 0xAD, 0xE6, 0x96, 0x87)
  12.     Write-Host (ConvertFrom-ByteArray $chineseBytes1) -NoNewline
  13.    
  14.     Write-Host ': ' -NoNewline
  15.    
  16.     # "乱码" 的UTF-8字节数组  
  17.     $chineseBytes2 = @(0xE4, 0xB9, 0xB1, 0xE7, 0xA0, 0x81)
  18.     Write-Host (ConvertFrom-ByteArray $chineseBytes2) -ForegroundColor Green
  19.     Write-Host ''
  20. }

  21. & {
  22.     $ws = New-Object -ComObject WScript.Shell  
  23.    
  24.     # "你好吗?" 的UTF-8字节数组
  25.     $textBytes = @(0xE4, 0xBD, 0xA0, 0xE5, 0xA5, 0xBD, 0xE5, 0x90, 0x97, 0xEF, 0xBC, 0x9F)
  26.     # "我的窗口" 的UTF-8字节数组
  27.     $titleBytes = @(0xE6, 0x88, 0x91, 0xE7, 0x9A, 0x84, 0xE7, 0xAA, 0x97, 0xE5, 0x8F, 0xA3)
  28.    
  29.     $wsr = $ws.popup(
  30.         (ConvertFrom-ByteArray $textBytes),
  31.         5,
  32.         (ConvertFrom-ByteArray $titleBytes),
  33.         1 + 64
  34.     )
  35. } @args
复制代码
最后,最好的解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:47 , Processed in 0.018316 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表