pexels-photo-4498792.jpeg

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

 
0
このエントリーをはてなブックマークに追加
Kazuki Moriyama
Kazuki Moriyama (森山 和樹)

エクセルで普通に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列
info-outline

お知らせ

K.DEVは株式会社KDOTにより運営されています。記事の内容や会社でのITに関わる一般的なご相談に専門の社員がお答えしております。ぜひお気軽にご連絡ください。