[Console]::OutputEncoding 을 UTF-8 로 두지 않으면 PowerShell 이 자식 프로세스 stdout 을 콘솔 코드페이지(LTSC en-US = 437)로 읽는다. python 쪽은 PYTHONUTF8=1 로 UTF-8 을 내보내니 한글이 전부 깨지고, 회수한 증거 파일의 실패 메시지를 읽을 수 없었다(실제로 첫 수집본의 한글 트레이스백이 그랬다). docs/WINDOWS-TESTING.md 에 증거 채널(POST /artifact -> results/)과 sync.sh <sha> 재검증 절차를 적었다.
This commit is contained in:
@@ -10,6 +10,14 @@
|
||||
$ErrorActionPreference = 'Stop'
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
|
||||
# 자식 프로세스 stdout 을 UTF-8 로 해독한다.
|
||||
#
|
||||
# 이게 없으면 PowerShell 이 자식의 출력을 콘솔 코드페이지(LTSC en-US = 437)로
|
||||
# 읽는다. python 쪽은 PYTHONUTF8=1 로 UTF-8 을 내보내므로 한글이 전부 깨져서
|
||||
# 호스트로 회수한 증거 파일의 실패 메시지를 읽을 수 없다. 여기서 바꾸는 건
|
||||
# '해독' 쪽이라 파일 저장 인코딩(StreamWriter 는 UTF-8 고정)과는 무관하다.
|
||||
try { [Console]::OutputEncoding = [Text.UTF8Encoding]::new($false) } catch { }
|
||||
|
||||
$Dl = 'C:\win-ci\dl'
|
||||
New-Item -ItemType Directory -Force -Path $Dl | Out-Null
|
||||
|
||||
|
||||
Reference in New Issue
Block a user