0

いくつかの文字列を含むバイナリ ファイルをインポートする手順があります。文字列には、CHR(224)、'à' などの拡張 ASCII を含めることができます。この手順では、RAW を取得し、BCD バイトを文字列内の文字に 1 つずつ変換しています。

問題は、拡張 ASCII 文字が失われていることです。これは、それらの値が UTF8 で別の意味を持っているためだと思われます。

私が必要としているのは、ASCII 文字インデックスを受け取り、適切な UTF8 文字を返す関数だと思います。

更新: 着信テキストに相当する Oracle 文字セットをたまたま知っている場合、raw バイトを UTF8 に変換できますか? ソース テキストは常に 1 バイトです。

4

1 に答える 1

1

「拡張 ASCII」などというものはありません。または、より正確に言うと、非常に多くのエンコーディングが ASCII のスーパーセットであり、同じ最初の 127 コード ポイントを共有しているため、この用語はあいまいすぎて意味がありません。このファイルの文字列が UTF-8、ISO-8859、MacRoman などを使用してエンコードされているかどうかを確認する必要があります。

あなたの質問の2番目の部分への答えは同じです。UTF-8 は、設計上、ASCII のスーパーセットです。任意の ASCII 文字 (つまり、0 から 127) も UTF-8 文字です。ASCII 以外の文字 (つまり >= 128) を UTF-8 に変換するには、まずその文字のエンコーディングを調べる必要があります。

于 2008-10-22T14:50:55.387 に答える