Reputation: 2224
I am using Start-Transcript
/Stop-Transcript
cmdlet to save the messages of commands launched from my PowerShell script.
I ran commands that contain Japanese characters in messages like this:
PS C:\tmp> Start-Transcript -Path 'C:\tmp\Start-Transcript.txt'
トランスクリプトが開始されました。出力ファイル: C:\tmp\Start-Transcript.txt
PS C:\tmp> pktmon etl2txt C:\tmp\ETW\pktmon_curl_http_capture.etl
処理しています...
書式設定されたイベント: 1496
書式設定されたファイル: C:\tmp\ETW\pktmon_curl_http_capture.txt
PS C:\tmp> Stop-Transcript
トランスクリプトが停止されました。出力ファイル: C:\tmp\Start-Transcript.txt
PS C:\tmp>
The byte-by-byte representation is like this.
Format-Hex
can't print non-Latin1 characters properly.PS C:\tmp> pktmon etl2txt C:\tmp\ETW\pktmon_curl_http_capture.etl | Format-Hex -Raw -Encoding UTF8
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 E8 9C 83 EF BD A6 E9 80 85 E3 83 BB EF BC A0 E7 èヲéã»ï¼ ç
00000010 B8 BA EF BD A6 E7 B8 BA E3 83 BB E2 88 AA E7 B8 ¸ºï½¦ç¸ºã»âªç¸
00000020 BA E3 83 BB 2E 2E ºã»..
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 E8 AD 96 EF BD B8 E8 A0 91 E5 89 B0 EF BD A8 EF èクè å°ï½¨ï
00000010 BD AD E8 9E B3 E5 A3 B9 EF BC 86 E7 B9 A7 E5 BE ½è³å£¹ï¼ç¹§å¾
00000020 8C E2 97 86 E7 B9 A7 EF BD A4 E7 B9 9D E5 90 B6 â繧、ç¹å¶
00000030 CE A6 E7 B9 9D E3 83 BB 20 20 20 20 31 34 39 36 Φç¹ã» 1496
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 E8 AD 96 EF BD B8 E8 A0 91 E5 89 B0 EF BD A8 EF èクè å°ï½¨ï
00000010 BD AD E8 9E B3 E5 A3 B9 EF BC 86 E7 B9 A7 E5 BE ½è³å£¹ï¼ç¹§å¾
00000020 8C E2 97 86 E7 B9 9D E8 BC 94 E3 81 83 E7 B9 A7 âç¹è¼ã繧
00000030 EF BD A4 E7 B9 9D EF BD AB 3A 20 20 20 20 43 3A 、ç¹ï½«: C:
00000040 5C 74 6D 70 5C 45 54 57 5C 70 6B 74 6D 6F 6E 5F \tmp\ETW\pktmon_
00000050 63 75 72 6C 5F 68 74 74 70 5F 63 61 70 74 75 72 curl_http_captur
00000060 65 2E 74 78 74 e.txt
PS C:\tmp>
But in the result of Start-Transcript
, NULL characters (0x00
) are inserted after every Japanese character like this:
**********************
Windows PowerShell トランスクリプト開始
開始時刻: 20250215200936
ユーザー名: K690XN-M2S5-KK\satob
RunAs ユーザー: K690XN-M2S5-KK\satob
構成名:
コンピューター: K690XN-M2S5-KK (Microsoft Windows NT 10.0.26100.0)
ホスト アプリケーション: C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe
プロセス ID: 13472
PSVersion: 5.1.26100.2161
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.26100.2161
BuildVersion: 10.0.26100.2161
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
トランスクリプトが開始されました。出力ファイル: C:\tmp\Start-Transcript.txt
PS C:\tmp> pktmon etl2txt C:\tmp\ETW\pktmon_curl_http_capture.etl
処 理 し て い ま す ...
書 式 設 定 さ れ た イ ベ ン ト : 1496
書 式 設 定 さ れ た フ ァ イ ル : C:\tmp\ETW\pktmon_curl_http_capture.txt
PS C:\tmp> Stop-Transcript
**********************
Windows PowerShell トランスクリプト終了
終了時刻: 20250215200936
**********************
The byte-by-byte representation is like this.
The message 処 理 し て い ま す ...
starts from 0000034C
. Every Japanese characters have trailing NULL
like 0000034F
.
PS C:\tmp> Format-Hex .\Start-Transcript.txt
Path: C:\tmp\Start-Transcript.txt
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000 EF BB BF 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A *************
00000010 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 0A 57 69 6E 64 6F *********..Windo
00000020 77 73 20 50 6F 77 65 72 53 68 65 6C 6C 20 E3 83 ws PowerShell ã
00000030 88 E3 83 A9 E3 83 B3 E3 82 B9 E3 82 AF E3 83 AA ã©ã³ã¹ã¯ãª
00000040 E3 83 97 E3 83 88 E9 96 8B E5 A7 8B 0D 0A E9 96 ããéå§..é
00000050 8B E5 A7 8B E6 99 82 E5 88 BB 3A 20 32 30 32 35 å§æå»: 2025
00000060 30 32 31 35 32 30 30 39 33 36 0D 0A E3 83 A6 E3 0215200936..ã¦ã
00000070 83 BC E3 82 B6 E3 83 BC E5 90 8D 3A 20 4B 36 39 ¼ã¶ã¼å: K69
00000080 30 58 4E 2D 4D 32 53 35 2D 4B 4B 5C 73 61 74 6F 0XN-M2S5-KK\sato
00000090 62 0D 0A 52 75 6E 41 73 20 E3 83 A6 E3 83 BC E3 b..RunAs ã¦ã¼ã
000000A0 82 B6 E3 83 BC 3A 20 4B 36 39 30 58 4E 2D 4D 32 ¶ã¼: K690XN-M2
000000B0 53 35 2D 4B 4B 5C 73 61 74 6F 62 0D 0A E6 A7 8B S5-KK\satob..æ§
000000C0 E6 88 90 E5 90 8D 3A 20 0D 0A E3 82 B3 E3 83 B3 æå: ..ã³ã³
000000D0 E3 83 94 E3 83 A5 E3 83 BC E3 82 BF E3 83 BC 3A ãã¥ã¼ã¿ã¼:
000000E0 20 4B 36 39 30 58 4E 2D 4D 32 53 35 2D 4B 4B 20 K690XN-M2S5-KK
000000F0 28 4D 69 63 72 6F 73 6F 66 74 20 57 69 6E 64 6F (Microsoft Windo
00000100 77 73 20 4E 54 20 31 30 2E 30 2E 32 36 31 30 30 ws NT 10.0.26100
00000110 2E 30 29 0D 0A E3 83 9B E3 82 B9 E3 83 88 20 E3 .0)..ãã¹ã ã
00000120 82 A2 E3 83 97 E3 83 AA E3 82 B1 E3 83 BC E3 82 ¢ããªã±ã¼ã
00000130 B7 E3 83 A7 E3 83 B3 3A 20 43 3A 5C 57 49 4E 44 ·ã§ã³: C:\WIND
00000140 4F 57 53 5C 53 79 73 74 65 6D 33 32 5C 57 69 6E OWS\System32\Win
00000150 64 6F 77 73 50 6F 77 65 72 53 68 65 6C 6C 5C 76 dowsPowerShell\v
00000160 31 2E 30 5C 70 6F 77 65 72 73 68 65 6C 6C 2E 65 1.0\powershell.e
00000170 78 65 0D 0A E3 83 97 E3 83 AD E3 82 BB E3 82 B9 xe..ããã»ã¹
00000180 20 49 44 3A 20 31 33 34 37 32 0D 0A 50 53 56 65 ID: 13472..PSVe
00000190 72 73 69 6F 6E 3A 20 35 2E 31 2E 32 36 31 30 30 rsion: 5.1.26100
000001A0 2E 32 31 36 31 0D 0A 50 53 45 64 69 74 69 6F 6E .2161..PSEdition
000001B0 3A 20 44 65 73 6B 74 6F 70 0D 0A 50 53 43 6F 6D : Desktop..PSCom
000001C0 70 61 74 69 62 6C 65 56 65 72 73 69 6F 6E 73 3A patibleVersions:
000001D0 20 31 2E 30 2C 20 32 2E 30 2C 20 33 2E 30 2C 20 1.0, 2.0, 3.0,
000001E0 34 2E 30 2C 20 35 2E 30 2C 20 35 2E 31 2E 32 36 4.0, 5.0, 5.1.26
000001F0 31 30 30 2E 32 31 36 31 0D 0A 42 75 69 6C 64 56 100.2161..BuildV
00000200 65 72 73 69 6F 6E 3A 20 31 30 2E 30 2E 32 36 31 ersion: 10.0.261
00000210 30 30 2E 32 31 36 31 0D 0A 43 4C 52 56 65 72 73 00.2161..CLRVers
00000220 69 6F 6E 3A 20 34 2E 30 2E 33 30 33 31 39 2E 34 ion: 4.0.30319.4
00000230 32 30 30 30 0D 0A 57 53 4D 61 6E 53 74 61 63 6B 2000..WSManStack
00000240 56 65 72 73 69 6F 6E 3A 20 33 2E 30 0D 0A 50 53 Version: 3.0..PS
00000250 52 65 6D 6F 74 69 6E 67 50 72 6F 74 6F 63 6F 6C RemotingProtocol
00000260 56 65 72 73 69 6F 6E 3A 20 32 2E 33 0D 0A 53 65 Version: 2.3..Se
00000270 72 69 61 6C 69 7A 61 74 69 6F 6E 56 65 72 73 69 rializationVersi
00000280 6F 6E 3A 20 31 2E 31 2E 30 2E 31 0D 0A 2A 2A 2A on: 1.1.0.1..***
00000290 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
000002A0 2A 2A 2A 0D 0A E3 83 88 E3 83 A9 E3 83 B3 E3 82 ***..ãã©ã³ã
000002B0 B9 E3 82 AF E3 83 AA E3 83 97 E3 83 88 E3 81 8C ¹ã¯ãªããã
000002C0 E9 96 8B E5 A7 8B E3 81 95 E3 82 8C E3 81 BE E3 éå§ããã¾ã
000002D0 81 97 E3 81 9F E3 80 82 E5 87 BA E5 8A 9B E3 83 ããåºåã
000002E0 95 E3 82 A1 E3 82 A4 E3 83 AB 3A 20 43 3A 5C 74 ã¡ã¤ã«: C:\t
000002F0 6D 70 5C 53 74 61 72 74 2D 54 72 61 6E 73 63 72 mp\Start-Transcr
00000300 69 70 74 2E 74 78 74 0D 0A 50 53 20 43 3A 5C 74 ipt.txt..PS C:\t
00000310 6D 70 3E 20 70 6B 74 6D 6F 6E 20 65 74 6C 32 74 mp> pktmon etl2t
00000320 78 74 20 43 3A 5C 74 6D 70 5C 45 54 57 5C 70 6B xt C:\tmp\ETW\pk
00000330 74 6D 6F 6E 5F 63 75 72 6C 5F 68 74 74 70 5F 63 tmon_curl_http_c
00000340 61 70 74 75 72 65 2E 65 74 6C 0D 0A E5 87 A6 00 apture.etl..å¦.
00000350 E7 90 86 00 E3 81 97 00 E3 81 A6 00 E3 81 84 00 ç.ã.ã¦.ã.
00000360 E3 81 BE 00 E3 81 99 00 2E 2E 2E 0D 0A 0D 0A E6 ã¾.ã........æ
00000370 9B B8 00 E5 BC 8F 00 E8 A8 AD 00 E5 AE 9A 00 E3 ¸.å¼.è¨.å®.ã
00000380 81 95 00 E3 82 8C 00 E3 81 9F 00 E3 82 A4 00 E3 .ã.ã.ã¤.ã
00000390 83 99 00 E3 83 B3 00 E3 83 88 00 3A 20 20 20 20 .ã³.ã.:
000003A0 31 34 39 36 0D 0A E6 9B B8 00 E5 BC 8F 00 E8 A8 1496..æ¸.å¼.è¨
000003B0 AD 00 E5 AE 9A 00 E3 81 95 00 E3 82 8C 00 E3 81 .å®.ã.ã.ã
000003C0 9F 00 E3 83 95 00 E3 82 A1 00 E3 82 A4 00 E3 83 .ã.ã¡.ã¤.ã
000003D0 AB 00 3A 20 20 20 20 43 3A 5C 74 6D 70 5C 45 54 «.: C:\tmp\ET
000003E0 57 5C 70 6B 74 6D 6F 6E 5F 63 75 72 6C 5F 68 74 W\pktmon_curl_ht
000003F0 74 70 5F 63 61 70 74 75 72 65 2E 74 78 74 0D 0A tp_capture.txt..
00000400 50 53 20 43 3A 5C 74 6D 70 3E 20 53 74 6F 70 2D PS C:\tmp> Stop-
00000410 54 72 61 6E 73 63 72 69 70 74 0D 0A 2A 2A 2A 2A Transcript..****
00000420 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A ****************
00000430 2A 2A 0D 0A 57 69 6E 64 6F 77 73 20 50 6F 77 65 **..Windows Powe
00000440 72 53 68 65 6C 6C 20 E3 83 88 E3 83 A9 E3 83 B3 rShell ãã©ã³
00000450 E3 82 B9 E3 82 AF E3 83 AA E3 83 97 E3 83 88 E7 ã¹ã¯ãªããç
00000460 B5 82 E4 BA 86 0D 0A E7 B5 82 E4 BA 86 E6 99 82 µäº..çµäºæ
00000470 E5 88 BB 3A 20 32 30 32 35 30 32 31 35 32 30 30 å»: 20250215200
00000480 39 33 36 0D 0A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 936..***********
00000490 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 0D 0A ***********..
Start-Transcript
cmdlet doesn't have -Encoding
option. Character encoding of Start-Transcript
is fixed to UTF-8 with BOM. Japanese characters themselves are saved properly.Is there any way to stop Start-Transcript
from inserting a NULL character (0x00
) after Japanese characters?
Upvotes: 2
Views: 43