可能ですが、いくつかの落とし穴があります: 1) アプリを作成している言語によって異なります (プログラミング言語ごとに異なる DM ライブラリには異なるバインディングがあります。たとえば、* nix- にはかなり一般的なライブラリがあります)。 [libdmtx][1] と呼ばれる関連環境 (Maemo/MeeGo/Tizen のほぼすべてのバーコード スキャナー/ジェネレーター、いくつかの WinPhone アプリ、KDE など) を使用しています。 unicode はかなり問題ありませんが、エンコードされたメッセージを適切にマークしません (「ねえ、他の読者、ここは unicode です!」)。そのため、[ZXing][2] などの他のライブラリは、多くの独自のスキャナーと同様に、その unicode をデコードします。 ASCII としてのメッセージ。
[ZXing][2] の作成者と話し合った限りでは、適切なマークはおそらく ECI セグメント (最初のコードワードとして 0d241 バイト、その後に "0d26" バイト (UTF-8 の場合) が続く) です。ただし、これは理論上の解決策であり、QR コードのようなものに基づいており、DataMatrix ではまったく標準化されていません ([libdmtx][1] も [ZXing][2] も、そのようなマーキングを使用したエンコードはまだサポートしていませんが、 、そのようにいくつかのステップがあります。
TL;DR: 生成されたコード (Unicode メッセージを含む) をアプリ間でのみ使用する予定がある場合は、[libdmtx][1] を両側でエンコードとデコードの両方に自由に使用できます。正常に動作します:) そうでない場合 — あなたの言語で [zxing][2] ポートを探してみてください (そしてポートがエンコーディングをサポートしていることを確認してください)。
1: github.com/dmtx/libdmtx
2: github.com/zxing/zxing