見えないキャラクターがステージに!?

Deeplからの自動翻訳

ITのベストプラクティスは時々変化しますが、テキストファイルの特定の不可視文字の管理はその一例です。EOL(End of Line)文字は、特にバージョン管理システム統合の目的で進化してきました。同じように、UnicodeテキストファイルのBOM(Byte Order Mark)は、あまり使われなくなってきています。

4D v19 R2では、4Dはこれらのベストプラクティスに沿ってスムーズに進化しており、より柔軟な対応が可能です。

リマインダ

行末(EOL)

テキストファイルの行は、EOL(End of Line)文字で区切られていることはご存じでしょう。Windowsでは、これは2つの文字の組み合わせになっています。

  • キャリッジリターン(#13、CRと命名)と
  • ラインフィード(#10、LF)です。

macOSでは、従来のCR文字でした。

Gitのようなバージョン管理システムでは、CRをEOL文字として管理できないため、LFを使う必要がある。

バイトオーダーマーク(BOM)

Unicodeテキストファイルには、使用する文字セットを定義するByte Order Markという見えない見出しバイトがあることもご存じでしょう。

4Dは、Unicodeを導入する際、デフォルトでBOMを持つテキストファイルを書くことで、現在のベストプラクティスに従いました。しかし、UTF-8が標準的なテキストファイルのフォーマットになりつつあるため、BOMはあまり使われなくなってきています。

テキストファイルに関する新しい4D規則

今後、4Dは、トレンドに従って、BOMなしでテキストファイルを書き込みます。また、macOSでは、4DはLFをEOL文字として使用します。これは、4DSettings、4dm、4DFormなど、4Dで書かれた全てのファイルに対して、完全に自動で行われます。

以前の4Dバージョンでファイルを開く場合、たとえ4D v19 R2で書かれたものであっても、問題は発生しません。これらの以前のバージョンは、BOMなしで、EOL文字としてLFを使うファイルを開くことができたからです。

互換性の設定

4Dの動作に従いたいですか?新しい互換性設定を使用すると、次のことが可能になります。 TEXT TO DOCUMENTFilesetText()オプションの “charSet “と “breakMode “パラメータがない場合、macOSでBOMなしでファイルを生成し、EOL文字としてLFを使用することができます これは完全に自動化されており、この新しい動作の恩恵を受けるためにソースコードを書き換える必要はありません。

新しい文字セット

新しい互換性設定は、以下のコマンドに適用されます。 TEXT TO DOCUMENTおよびFile.setText()が、”charSet” または “breakMode” オプション・パラメーターなしで使用された場合、適用されます。
EOL文字については、変更はありません。breakMode “パラメータを使用して強制することができます。

同じように、以下の方法で生成されたファイルに、EOL文字が含まれるかどうかを正確に定義したい場合もあるでしょう。 TEXT TO DOCUMENTFile.setText()が生成するファイルがBOMを含んでいるかどうかを正確に定義したい場合もあります。そのためには、”UTF-8-no-bom” や “UTF-16-no-bom” など、”-no-bom” で終わる Unicode 文字セットを定義して、BOM のないファイルを書き込むようにします。BOM付きのファイルを書き込むには、”UTF-8 “や “UTF-16 “などの”-no-bom “を付けない既存の文字セットを引き続き使用することができます。

Avatar
- プロダクトオーナー - Damien Fuzeauは、2019年2月に4D Productチームに参加しました。プロダクトオーナーとして、ユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換することを担当しています。また、実装された機能が顧客のニーズを満たしているかどうかを確認することも彼の役割です。ナント大学のソフトウェア工学科を卒業。前職の会社では最初は開発者として(1997年に4Dを発見)、後にエンジニアリングマネージャーとソフトウェアアーキテクトとして、23年以上勤務しました。この会社は、4DのOEMパートナーであり、現在は数千のユーザーと数百のサーバーに向けて4Dベースのビジネスソフトを展開しています。ですから、Damienは、多言語環境での4D開発・導入に慣れています。