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列
Match Type Scalaのシングルトン型(~.type)について [初級-中級向け]Scala基本APIを完全に理解するシリーズ② -Either編-
View Comments
There are currently no comments.