Powershell에서 일본어를 사용하고 싶습니다.

PowerShell로 일본어를 깨뜨릴 수 있습니다.



프로그래머의 부딪치는 벽 중 하나에 "문자 깨짐"이 있습니다. 이 기사를 읽고 계시는 일본인 분은, 잘 이해해 주실 수 있다고 생각합니다.
이번에는 PowerShell에서 일본어를 사용하고 싶다! 라는 내 희망을 실현하기 위해 가장 목이 된 문제를 공유합니다.

UTF-8이 사용하고 싶습니다.



우선, 현재 문자 코드를 확인합시다.
$OutputEncoding.encodingName
# -> US-ASCII

구그하면 PowerShell에서 UTF-8을 사용하려면 아래 코드를 쓰면 좋다.
$OutputEncoding='utf-8'

↓결과↓
Cannot convert the "utf-8" value of type "System.String" to type "System.Text.Encoding".
At line:1 char:1
+ $OutputEncoding='utf-8'
+ ~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
    + FullyQualifiedErrorId : RuntimeException


화가났다. . . 풀 수 없다. . .

더 조사한



아무래도, 이런 쓰는 방법도 있는 것 같다.
$OutputEncoding = [Text.UTF8Encoding]::UTF8

그래서, 문자 코드를 확인해보십시오 ↓
$OutputEncoding.encodingName
  # -> Unicode (UTF-8)

오! 잘 갔다.

일본어 파일 불러오기 보기



적절하게 폴더의 파일을 가져 와서 이름을 출력 해보십시오.
$DIR_ = Get-ChildItem 
$FILES = ${DIR_}.name

foreach ($f in $FILES) {
  Write-Host $f
}

안돼! ! 할 수 없습니다! ! (출력 예를 나타내고 싶었습니다만, pc를 재기동하는 것이 귀찮아서, 할애합니다)

다시 조사



이런 페이지를 발견↓
Windows10 April 2018 Update에서 추가된 UTF-8 모드 사용
호호.
제어판 -> 시계 및 지역 -> 지역 -> 관리 -> 유니 코드를 지원하지 않는 프로그램의 언어
아무래도 변경하는 것 같다.

해봤어



제어판에서 시계 및 지역 선택

지역 선택

새로 출현한 윈드의 관리 탭을 선택

관리 탭에서 시스템 로케일 변경 선택

새로운 윈도우의 체크 박스를 체크(현재의 시스템 로케일은 각 환경 의존이므로, 신경쓰지 않는다)

이상

재챌린지



다시 폴더의 파일 이름을 열거하는 프로그램 실행
$DIR_ = Get-ChildItem 
$FILES = ${DIR_}.name

foreach ($f in $FILES) {
  Write-Host $f
}

↓결과↓
はげ # フォルダ
ひげ # フォルダ
ふげ # フォルダ
へげ # フォルダ
ほげ # フォルダ
hoge.txt # テキストファイル

성공!!

요약



문자 코드를 싫어할 것 같아서, 타케케 잉글리쉬 사용하려고 생각했습니다.
그렇지만, 개인 파일이라면 아직도, 업무라든가라면 일본어 파일 절대 있고-. . .

원래, $OutputEncoding='utf-8' 같은 선언은, 자면적으로 출력 설정같기 때문에 의미 없을까?

좋은 웹페이지 즐겨찾기