Robotic Crowd

Robotic Crowd

ファイルの文字コードを変換する

Author: Asao Nakamura 241 views

この記事では「ファイルの文字コードの変換方法」について紹介します。

【できるようになること】
・テキストやCSVファイルの文字コードを変換
・テキストやCSVを読み込む際にファイルの文字コードを指定


ファイルの文字コードを変換/指定する場面

・ワークフロー内部で取得したファイルが文字化けしている場合
・ワークフロー内部で取得したファイルの文字コードを統一したい場合

 ChangeFileEncoding

RoboticCrowdのChangeFileEncoding(ファイルの文字コードを変換)アクションを利用すると、あるファイル型のアウトプットに設定されている文字コードを、別の文字コードに変換することができます。

 利用できる文字コードの一覧

ChangeFileEncodingでは、以下の文字コードに対応しています。

読み込みに対応している文字コード
UTF8, UTF16, UTF16-LE, UTF16-BE, UTF7, UTF7-IMAP, UCS2, ASCII, Binary, Base64, HEX, CP932, CP936, CP949, CP950, GB2312, GBK, GB18030, Big5, Shift_JIS, EUC-JP
変換に対応している文字コード
UTF8, UTF8 (BOM有り), UTF16, UTF16 (BOM有り), UTF16-LE, UTF16-BE, UTF7, UTF7 (BOM有り), UTF7-IMAP, UCS2, ASCII, Binary, Base64, HEX, CP932, CP936, CP949, CP950, GB2312, GBK, GB18030, Big5, Shift_JIS, EUC-JP

 

 ワークフローの設定例

ここでは変換例として、ダウンロードしたCSVファイルの文字コード(UTF8)を、Shift_JISに変換してみます。

CSVファイルをダウンロードする部分をコピペで作成します(詳細な方法はこちらをご参照ください。)

# ブラウザを開く
+open_browser_1:
  action>: OpenBrowser
  url: 'https://robotic-crowd-tutorial.herokuapp.com/advanced/file_form/start'
  lang: 'ja-JP'
  headless: true

# クリック
+click_1:
  action>: Click
  browser: +open_browser_1
  selector: '.btn-outline-info'
  confirm: true
  ignoreError: true
  waitForDownload: true

# ダウンロードファイル一覧
+get_download_files_1:
  action>: GetDownloadFiles
  order: DESC
  sort_by: CREATED

ファイルの文字コードを変換します。
  • ChangeFileEncodingを設定します。
  • filename(ファイル名)パラメータに、GetDownloadFilesのアウトプットを指定します。
    ※変換対象ファイルに設定されている元の文字コードは、自動で判定されます。
※注意※
・save_as(変換後のファイル名)パラメータに何も入力しない場合、変換後のファイル名は「ファイル名_文字コード.拡張子」になります。
・変換後のファイル名を指定する場合は、変換前のファイル名とは別のファイル名をご指定ください。

変換されたCSVファイルをReadCSVアクションで読み込みます。
差を確認するため、変換前のCSVも読み込みます。

  • ワークフロー下部にReadCSVを2つ追加します。
  • それぞれのfilenameパラメータに、ChangeFileEncodingとGetDownloadFilesを指定します。

文字コード変換の対象となるファイルに設定されている文字コードは自動で判定されますが、任意のコードを指定することも可能です。
方法は以下です。

  • ChangeFileEncodingの詳細設定を開きます。
  • 元の文字コード(original_encoding)に任意の文字コードを指定します。

# ブラウザを開く
+open_browser_1:
  action>: OpenBrowser
  url: 'https://robotic-crowd-tutorial.herokuapp.com/advanced/file_form/start'
  lang: 'ja-JP'
  headless: true

# クリック
+click_1:
  action>: Click
  browser: +open_browser_1
  selector: '.btn-outline-info'
  confirm: true
  ignoreError: true
  waitForDownload: true

# ダウンロードファイル一覧
+get_download_files_1:
  action>: GetDownloadFiles
  order: DESC
  sort_by: CREATED

# ファイルの文字コードを変換
+change_file_encoding_1:
  action>: ChangeFileEncoding
  filename: +get_download_files_1
  save_as: ''
  target_encoding: Shift_JIS
  original_encoding: 'auto-detect'

# CSVを読み込む(文字コードが変換されたものを読み込みます)
+read_c_s_v_1:
  action>: ReadCSV
  filename: +change_file_encoding_1
  headers: true

# CSVを読み込む(変換前のファイルをShift_JISで読み込み 1行目が文字化けします)
+read_c_s_v_2:
  action>: ReadCSV
  filename: +get_download_files_1
  headers: true

 ファイル読み込み時の文字コードを指定する

ReadTextとReadCSVアクションでは、ファイル読み込み時に使用する文字コードを任意に指定することが可能です。
読み込むファイルの文字コードが予めわかっている場合に効果を発揮できます。(先に紹介した文字コードの変換後など)


ReadText, ReadCSVで指定可能な文字コード
utf8, ucs2 / utf16-le, ascii, binary, base64, hex, utf16, utf16-be, utf-7, utf-7-imap, CP932, CP936, CP949, CP950, GB2312, GBK, GB18030, Big5, Shift_JIS, EUC-JP
【文字コード】ChangeFileEncoding

このページは役に立ちましたか?