マルチキャラクタデータをデータベースに保存して問題をデバッグしようとすると、Groovyが文字列をどのように処理しているかという問題が絞り込まれました。 は、私はこのコードのスニペットを持っている:Groovyがユニコード文字列を出力する方法を理解できない
println "Hi!"
def strings=[
"Dies ist eine Testlinie in deutscher Sprache.",
"C'est une ligne d'essai en français.",
"Is é seo an líne tástála i nGaeilge..",
"Esta é unha liña de proba en galego.",
"Questa è una linea di prova in italiano.",
"Dette er en test linje i norsk.",
"Þetta er próf lína í íslensku.",
"Góðan dag, hvernig ert þú að gera?",
"Ich komme aus Köln"
]
strings.each {
println it
}
私はgroovyコンソールに私のブラウザから行をコピーし、このスニペットを救いました。
私はとWindowsのコマンドラインで実行した場合:
groovy testAnsi.groovy
私が手:
Hi!
Dies ist eine Testlinie in deutscher Sprache.
C'est une ligne d'essai en franτais.
Is Θ seo an lφne tßstßla i nGaeilge..
Esta Θ unha li±a de proba en galego.
Questa Φ una linea di prova in italiano.
Dette er en test linje i norsk.
▐etta er pr≤f lφna φ φslensku.
G≤≡an dag, hvernig ert ■· a≡ gera?
Ich komme aus K÷ln
私はメモ帳++でファイルを開くと、それはそれはANSIで書かれて言いますと、たくさんのを示しています奇妙な文字。 メモ帳で開くと、ANSIで書かれており、適切な文字が表示されます。私はその後、ユニコードでメモ帳でファイルを保存する場合
(それはメモ帳内のすべての適切な文字をUC2リトルエンディアン++として表示)、およびなどのコマンドラインで実行します:私はこれを取得
groovy -c UTF-16 testUnicode.groovy
:
Hi!
Dies ist eine Testlinie in deutscher Sprache.
C'est une ligne d'essai en franτais.
Is Θ seo an lφne tßstßla i nGaeilge..
Esta Θ unha li±a de proba en galego.
Questa Φ una linea di prova in italiano.
Dette er en test linje i norsk.
▐etta er pr≤f lφna φ φslensku.
G≤≡an dag, hvernig ert ■· a≡ gera?
Ich komme aus K÷ln
しかし、私はgroovyコンソール内ANSIまたはUnicodeのファイルのいずれかを実行したとき、私は、出力パネルで期待どおりの結果を得ることができます。
私がしなければ今、:
more testAnsi.groovy
私はスクリプトを実行するかどう私が手に同じちんぷんかんぷんを取得します。
私が行う場合:
more testUnicode.groovy
は私がアイスランドのものを除いて、適切な文字を取得します。
Linuxのボックスでコードを実行すると同じ結果が得られますが、catを使用してソースファイルの内容を表示すると、常に適切な文字が表示されます。
私は困惑しています。明らかに私は何か間違っているが、私は何が分からない。
ファイル内にあるように、文字列に含まれる文字をGroovyに出力させるにはどうすればよいですか?
ありがとうございます。それは多くの意味を持ち、画面の動作を説明します。なぜ私は画面に出力するのではなく、データベースに出力しようとすると、同じ結果が得られますか?私はOracle 10gに書き込み、NLS_LANG = AMERICAN_AMERICA.UTF8を設定し、Oracleドライバのスイッチを使用してすべての文字列をUTF-8として処理しますが、書き込まれたデータにも同様の問題があります。 – GVdP
同じ回答:あなたのデータベースをプレビューしているうちに、表示用のアプリケーションが間違ったコードを処理している可能性があります... – fixitagain