biz-Streamマニュアル よくあるご質問(FAQ) アップデート・環境構築 Java18 (Java21 LTS版) からデフォルトエンコーディングが変更になった影響はありますか

QJava18 (Java21 LTS版) からデフォルトエンコーディングが変更になった影響はありますか

A回答

影響について

Java 18 (Java21 LTS版)よりデフォルトのエンコーディングが「OSのエンコーディング」から「UTF-8」に変更されました。
JEP 400: UTF-8 by Default

biz-Stream でデフォルトエンコーディングが変更になったことによる影響として、「CSVファイル出力機能」へ影響がある場合があります。 例として 以下の2つの条件を満たす場合は以前のJavaの出力結果と異なります。

  1. Windows系OS にてbiz-Streamを実行している
  2. CSVファイル出力機能で、ファイルのエンコーディングを未指定にしている
つまり今までは OSのエンコーディング「ShitJIS(Windows-31J)」で出力されていたCSVファイルが「UTF-8」に代わります。 Windows OS を使用していない、CSVファイル出力を利用していない、CSV出力時にエンコーディングを指定している場合はこれに当てはまりません。


CSVファイル出力機能をご利用の場合

お客様のアプリケーションが上記条件の2に該当するかご不明な場合は、CSV出力ガイドの「3.1.2 基本的なコーディング方法」をご覧いただき、アプリケーションで「csv.setCharacterEncoding("XXX")」のように出力ファイルのエンコーディングが明示的に指定されているかをご確認ください。
CSVファイル出力機能を利用していない、既に指定がある場合は対処は不要です。指定が無い場合は明示的にエンコーディングを指定してください。


レイアウト・デザイナでレイアウトファイルを作成される場合

レイアウト・デザイナ機能をご利用されている場合のみ、併せてこちらをご参照ください。
レイアウト・デザイナでは、インストール時に<bs_designer_home>/jreが同梱されており、<bs_designer_home>/setenv.batでこのjreを利用する設定になっています。 最新バージョンのレイアウト・デザイナv5.2.0では Java17 を利用する設定になっており、このデフォルトの状態で利用する場合は対応は不要です。

setenv.bat

set BIZLD_HOME=.
set PATH=./jre/bin
set BIZLD_JDBC_PATH=%BIZLD_JDBC_PATH%
set BIZLD_JDBC_PATH=%BIZLD_JDBC_PATH%;./lib_jdbc/*
set CLASSPATH=%CLASSPATH%;.
set CLASSPATH=%CLASSPATH%;./config/
set CLASSPATH=%CLASSPATH%;./lib/*
set CLASSPATH=%CLASSPATH%;%BIZLD_JDBC_PATH%

お客様自身でJava18以上をインストールして 2.2 setenv.bat ファイルの修正を実施し、 レイアウト・デザイナをJava18以上で起動する場合は、以下のように <bs_designer_home>/BizStudio.batをテキストエディタで開き、Java起動オプションに「-Dfile.encoding=COMPAT」を追記してください。
この設定により Java17 以前と同じエンコードでレイアウト・デザイナを起動するようになります。

BizStudio.bat

@echo off
call setenv
start /b javaw -Dfile.encoding=COMPAT -Xms128m -Xmx512m BizStudio

  • レイアウト・デザイナ起動時に<bs_designer_home>/config/dafault_value.properties の base_dir の日本語文字列をUnicode文字列に変換しています。レイアウト・デザイナを起動するJavaのエンコードが変わると変換時に文字化けが発生してしまい、PDFプレビュー時にエラーになります。(レイアウト・デザイナv5.2.0 の制限事項)


biz-Stream Webサービスサーバをご利用の場合

biz-Stream Webサービスサーバについては、サポート環境が「指定のApache Tomcatのバージョン +指定のJavaのバージョン」の組み合わせとなるため、Java だけを新しいバージョンに入れ替えた状態でのサポートは行っておりません。



CSVファイルをデータソースとしてPDFを生成している場合

biz-StreamでPDFを生成する際に、データソースとしてCSVファイルを使用している場合はこちらもご参照ください。
PDF出力ガイド「3.4 サンプルプログラム(2-1) - CSVファイルをデータソースとしてPDFを生成」の 「 xml.setDataSource("csv-resource","${base-dir}/sample/java/Sample2-other.csv", "UTF-8")」のように、ファイルエンコーディングが明示的に指定されていれば影響はありません。
なお、アプリケーションでエンコーディングを指定しない場合はドキュメントレイアウトで指定したエンコーディングが有効になり、ドキュメントレイアウトでも指定しない場合は default_values.properties の csv_encoding が有効になります。いずれかで指定されていれば影響はありません。