私はいくつかの特殊文字がシステムのデフォルトエンコーディングのデータベース(sybase)に格納されていて、このデータをフェッチして、サードパーティにUTF-8エンコーディングで送信する必要があります。 Javaプログラム。Java UTF8エンコーディング
第三者に送信されるデータが定義済みの最大サイズを超えてはならないという前提があります。 UTF-8に変換すると文字が2文字または3文字に置き換えられることがあるので、データベースからデータを取得した後、UTF-8文字列にエンコードしてから文字列を分割する必要があります。
中国語やギリシャ語の文字や特殊文字> ASCII 256などの特殊文字がある場合、それをUTF-8に変換すると1文字が1バイト以上で表されることがあります。
どのように変換が適切であることを確認できますか?変換のために私は次のよう
// storing the data from database into string
string s = getdata from the database;
// converting all the data in byte array utf8 encoding
byte [] b = s.getBytes("UTF-8");
// creating a new string as my split logic is based on the string format
String newString = new String(b,"UTF-8");
を使用しています。しかし、私は特殊文字?
を得るとき、私は、出力コンソールにこのNEWSTRINGを。
だから私はいくつかの疑問があります。私の変換ロジックが間違っている場合、どのように私はそれを修正することができ、
- を。
- UTF-8に変換した後、変換が正常かどうかを再確認できますか?私はそれが第三者に送られる必要がある正しいメッセージであることを意味します。私は、メッセージが変換後にユーザーが判読できない場合は、変換に何らかの問題があると仮定します。
そこにいるすべての専門家の視点がありますか。
さらに詳しい情報が必要な場合は教えてください。
問題であると思われることあなたのコンソールではなく、私が言うことができる限り、変換は大丈夫です。あなたはそれをコンソールの代わりにテキストファイルに書き出し、テキストエディタでそれを開いてみましたか? – biziclop
元の文字列を出力しようとしましたか?あなたのコンソールで使用されているフォントには、これらの文字が含まれていない可能性があります。 – josefx
ユニコードからutf-8に変換して文字を正しく表示する作業は問題ありません。昨年、連絡先が解決策を見つけました。私は彼がどのようにこの作業をすることができたかを彼に尋ねます。 –