ページの先頭行へ戻る
Interstage Charset ManagerStandard Edition V10 トラブルシューティング

3.3.1 JEF関連のトラブル

3.3.1.1 【TRICV00016】JEFの'A1A1'を変換する時にコード変換エラーEILSEQが発生します。

原因

JEFの'A1A1'はJEFのコード範囲外のためEILSEQが発生します。

対処

コード範囲外のコードは、文字コード変換表のカスタマイズ機能を使用しても変換できません。

3.3.1.2 【TRICV00017】JEFの全文字をUnicodeへ変換したいのですが、変換できない文字があります。

原因

文字コード変換表をカスタマイズする必要があります。

対処

製品で提供する、JEFの拡張文字とUnicodeの外字域を対応定義する対応定義ファイル(JEF2FUNI.CTL)を利用して、対応定義を行ってください。なお、この対応定義ファイルを利用すると標準の対応関係と変わる文字があります。詳しくは、“3.3.1.5 【TRICV00020】JEFの文字を変換するため、JEF2FUNI.CTLを定義しました。定義を行ったところ、2対1変換を行うようになった文字があります。”を参照してください。

参照

製品が提供する対応定義ファイルについては、以下を参照してください。

  • “Charset Manager 使用手引書 標準コード変換機能編”の“5.3 制御文の形式”の“表5.1:対応定義ファイル”

なお、JEFの文字を表示、印刷したい場合には、JEF拡張漢字サポートをインストールする必要があります。Unicode-JEF明朝フォント、およびUnicode-JEFゴシックフォントを利用することでそのまま表示、印刷することができます。MS明朝などの別のフォントでJEFの文字を表示、印刷したい場合、外字に移入する必要があります。

3.3.1.3 【TRICV00018】JEFの全文字をSJISMSへ変換したいのですが、変換できない文字があります。

原因

JEFコードのほうが、SJISMSよりも文字数が多いため、すべての文字をSJISMSへ変換する事はできません。

対処

SJISMSへ変換できない文字は外字登録し対応定義する必要があります。ただし、SJISMSの外字領域より変換できない文字のほうが多いため、すべての文字を登録する事はできません。文字を選定し外字登録を行ってください。

参照

対応定義については、以下を参照してください。

  • “Charset Manager 使用手引書 標準コード変換機能編”の“第5章 文字コード変換表のカスタマイズ”

3.3.1.4 【TRICV00019】JEFの変換で、0x00が入力されるとエラーになってしまいます。

原因

シフト状態が2バイトの場合、領域外の文字と判断するためです。

対処

シフト状態が1バイトの場合、変換されます。(0xFFも変換されます。)

3.3.1.5 【TRICV00020】JEFの文字を変換するため、JEF2FUNI.CTLを定義しました。定義を行ったところ、2対1変換を行うようになった文字があります。

原因

この文字は制御文の定義前は、文字の流通を考え、変換できるようにしています。

UNIJEFと変換する際にはUNIJEFの文字により字体の近い文字があるので、その文字との対応を追加し相互変換を行うため、2対1変換となります。

このような文字は以下の7文字です。(2対1変換となる文字)

参考

JEF2FUNI.CTLを定義すると、以下の文字は対応関係が変わります。

対処

JEF2FUNI.CTLから2対1変換となる文字の対応定義を削除すると、標準対応になります。

3.3.1.6 【TRICV00021】JEF2FUNI.CTL(“JEF”と“Unicode”との対応定義) と、S_JEFAMS.CTL(“JEF”と“SJISMS”との対応定義)の対応定義を行うと、SJISMSからUnicodeへの変換で、JIS領域の一部の文字がUnicodeの外字域に変換されます。

原因

JEF2FUNI.CTL と S_JEFAMS.CTL の対応定義がリンクされているためです。

JEF2FUNI.CTLでは“JEFの旧字体や拡張文字”と“Unicodeの外字域”との対応が定義され、S_JEFAMS.CTLでは“JEFの旧字体”と“SJISMSの新字体”との対応が定義されます。したがって、SJISMSの新字体とUnicodeの外字域も、自動的に対応定義されます。

参照

対応定義については、以下を参照してください。

  • “Charset Manager 使用手引書 標準コード変換機能編”の“5.3.1 DEFCDPR制御文”

対処

JEF2FUNI.CTL と S_JEFAMS.CTL の対応定義により、自動的に定義されるSJISMSとUnicodeの対応関係が問題となる場合は、どちらかの対応定義を削除してください 。

3.3.1.7 【TRICV00022】SJISとJEFの間にUnicodeを介した変換を行ったところ、SJIS⇔JEF変換の結果と異なります。

原因

JEFとUnicodeの変換では、JEFとSJISの変換よりも字形を厳密に比較し、違う文字であると判断したコードについては変換を行わないようにしています。詳しくは、“Charset Manager 使用手引書 標準コード変換機能編”の“A.4 JEFとUnicodeの変換対応について”を参照してください。

対処

JEFとUnicodeの間で文字コード変換表のカスタマイズを行ってください。

SJISのfa9c「塚」をJEFのc4cdに変換したい場合

  • SJIS→JEF:fa9c→c4cd

  • SJIS→Unicode→JEF:fa9c→fa10→×

このため、以下の対応定義を行うことで変換可能となります。

  • Unicode→JEF:fa10→c4cd

3.3.1.8 【TRICV00023】JIS→JEFの変換で、字形重視でも領域重視でも、旧字体に変換されてしまう文字があります。

原因

JIS→JEFの変換では、83JIS改定文字は以下のように変換されます。

字形重視

領域重視

JIS改定文字 その1

新字体

旧字体

JIS改定文字 その2

旧字体

旧字体

「JIS改定文字 その2」は、字形重視でも領域重視でも旧字体に変換されます。

参照

JIS改定文字の内容については、マニュアルを参照してください。

“Charset Manager 使用手引書 標準コード変換機能編”の“A.2 縮退文字一覧”

対処

字形重視で、「JIS改定文字 その2」を新字体に変換したい場合、以下のどちらかの対処を行ってください。

  • SJISMSを経由して変換を行う。(JIS→SJISMS→JEF)

  • iconv_ext関数で、「JIS改定文字 その2」をJEFの新字体に変換するように定義する 。

  • 変換拡張定義で、「JIS改定文字 その2」をJEFの新字体に変換するように定義する。(V9.2.0から)

3.3.1.9 【TRICV00024】JEFのコード(0x28、0x29、0x30、0x38)を変換拡張定義でカスタマイズして変換すると、定義が有効になりません。

原因

仕様です。

JEFのシフトコード(0x28、0x29、0x38)やEBCDICの制御コード(0x30)を、変換拡張定義の変換元コードに指定しても、その定義は無効となります 。

対処

ありません。