分かりやすく、使いやすく。

文字列のバイト数をカウントする方法

スポンサーリンク

PowerShell で文字列のバイト数をカウントするには、 Encoding クラスの GetByteCount メソッドを使用します。バイト数は Encoding クラス生成時に指定した文字コードでカウントします。

尚、バイト数ではなく文字数を取得したい場合は文字列の文字数をカウントする方法を参照してください。

  1. 全角文字のバイト数をカウントした例
  2. 半角カナ文字のバイト数をカウントした例
  3. 半角英数をカウントした例


全角文字のバイト数をカウントした例

サンプルコードと実行結果は次の通りです。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$str = 'あいう漢字'
 
# ◆シフトJISでのバイト数を取得する
$int_byte_num = [System.Text.Encoding]::GetEncoding("shift_jis").GetByteCount($str)
 
Write-Host ("Shift JISのバイト数→" + [string]$int_byte_num)
 
# ◆EUC-JPでのバイト数を取得する
$int_byte_num = [System.Text.Encoding]::GetEncoding("euc-jp").GetByteCount($str)
 
Write-Host ("EUC-JPのバイト数→" + [string]$int_byte_num)
 
# ◆UTF-8でのバイト数を取得する
$int_byte_num = [System.Text.Encoding]::GetEncoding("utf-8").GetByteCount($str)
 
Write-Host ("UTF-8のバイト数→" + [string]$int_byte_num) 
Shift JISのバイト数→10
EUC-JPのバイト数→10
UTF-8のバイト数→15 

半角カナ文字のバイト数をカウントした例

サンプルコードと実行結果は次の通りです。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$str = 'アイウエオ'
 
# ◆シフトJISでのバイト数を取得する
$int_byte_num = [System.Text.Encoding]::GetEncoding("shift_jis").GetByteCount($str)
 
Write-Host ("Shift JISのバイト数→" + [string]$int_byte_num)
 
# ◆EUC-JPでのバイト数を取得する
$int_byte_num = [System.Text.Encoding]::GetEncoding("euc-jp").GetByteCount($str)
 
Write-Host ("EUC-JPのバイト数→" + [string]$int_byte_num)
 
# ◆UTF-8でのバイト数を取得する
$int_byte_num = [System.Text.Encoding]::GetEncoding("utf-8").GetByteCount($str)
 
Write-Host ("UTF-8のバイト数→" + [string]$int_byte_num) 
Shift JISのバイト数→5
EUC-JPのバイト数→10
UTF-8のバイト数→15 

半角英数をカウントした例

サンプルコードと実行結果は次の通りです。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$str = 'AB123'
 
# ◆シフトJISでのバイト数を取得する
$int_byte_num = [System.Text.Encoding]::GetEncoding("shift_jis").GetByteCount($str)
 
Write-Host ("Shift JISのバイト数→" + [string]$int_byte_num)
 
# ◆EUC-JPでのバイト数を取得する
$int_byte_num = [System.Text.Encoding]::GetEncoding("euc-jp").GetByteCount($str)
 
Write-Host ("EUC-JPのバイト数→" + [string]$int_byte_num)
 
# ◆UTF-8でのバイト数を取得する
$int_byte_num = [System.Text.Encoding]::GetEncoding("utf-8").GetByteCount($str)
 
Write-Host ("UTF-8のバイト数→" + [string]$int_byte_num) 
Shift JISのバイト数→5
EUC-JPのバイト数→5
UTF-8のバイト数→5 
スポンサーリンク
スポンサーリンク