Задать вопрос
noboxer
@noboxer

Как исправить проблему с кодировкой?

Привет! Хочу удаленно посмотреть список юзеров через net user, но
возникает проблема с кодировкой. CP 65001 и 1251 - не исправляют ситуацию.
Есть еще варианты, как можно исправить данный косяк?
65520c282593e983500255.png
  • Вопрос задан
  • 397 просмотров
Подписаться 1 Средний 7 комментариев
Решения вопроса 1
@MaxKozlov Куратор тега PowerShell
Эти перекодировки та ещё фигня
"На коленке" не покажу, а системно вот так,
function Get-TextEncoding ($Encoding) {
		switch -regex ($Encoding) {
			'default' {
				[System.Text.Encoding]::Default
			}
			'utf8' {
				[System.Text.Encoding]::UTF8
			}
			'oem' {
				[System.Text.Encoding]::GetEncoding(
					(Get-Culture).TextInfo.OEMCodePage
				)
			}
			'ansi' {
				[System.Text.Encoding]::GetEncoding(
					(Get-Culture).TextInfo.ANSICodePage
				)
			}
			'^\d+$' {
				[System.Text.Encoding]::GetEncoding([int]$Encoding)
			}
			default {
				[System.Text.Encoding]::GetEncoding($Encoding)
			}
		}
}
function Convert-TextEncoding {
param (
	[Parameter(ValueFromPipeline=$true,Position=0)]
	[String[]]$InputObject,
	[Parameter(Mandatory=$true,Position=1)]
	[string]$FromEncoding,
	[Parameter(Mandatory=$true,Position=2)]
	[string]$ToEncoding
)
BEGIN {
	try {
		$FE = Get-TextEncoding $FromEncoding
		$TE = Get-TextEncoding $ToEncoding
	}
	catch {
		throw
	}
}
PROCESS{
	foreach ($s in $InputObject) {
		if ($s) {
			$TE.GetString($FE.GetBytes($s))
		}
		else {
			$s
		}
	}
}
}

Invoke-Command -ComputerName $Computer { net user } | 
    Convert-TextEncoding -FromEncoding 1251 -ToEncoding 866
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы