52 views
B!0X

Scalaでcsvをexcelで開くときにUTF-8で解釈させ文字化けを防ぐ方法

scalaでcsvをexcelで開くときにutf-8で解釈させ文字化けを防ぐ

エクセルで普通にutf-8のcsvを開くときの問題

  • utf-8形式をshift_jisで読み込もうとするので日本語系がバグる

解決方法

  • BOMを指定してutf-8であることを指定する

BOMとは

  • Byte Order Maskの略
  • テキストデータの先頭数バイトのデータのこと
  • これによってプログラムはテキストがなんの文字コードであるかを判別している
  • utf-8の場合は先頭3byteが0xEF 0xBB 0xBFになっている

Scalaでやる

import java.nio.charset.StandardCharsets.UTF\_8

val texts: List\[Byte\] = ... // なんかのテキストデータのbyte列
val utf\_8texts = "\\uFEFF".getBytes(UTF\_8) ++ texts // BOMが指定されたtext byte列

開発の相談先をお探しですか。

この記事に関わることについてご相談がある方はお問い合わせください。

KDOT についてお問い合わせ