質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

1回答

4164閲覧

libHaruでPDFを作成すると日本語が文字化けしてしまう

zine

総合スコア7

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2016/10/05 08:47

編集2022/01/12 10:55

encodingは90ms-RKSJ-Hを使用しています。
Java側(android)からStringを渡して
渡した文字列を表示したいのですが、文字化けしてしまいます。

"あああ"を渡した場合、"縺ゅ≠縺"と表示されるので
UTF-8の文字列をshift_jisで表示しているため(?)
この事象が起きていると考えています。

日本語対応のライブラリのため、エンコードはやってくれるような
感覚でいましたが、違うのでしょうか。。

色々調べて試してみましたが、解決に至らなかったため
質問させて頂きました。

JNIEXPORT void JNICALL Java_com_draekko_libharu_PdfFont_useJp (JNIEnv *env, jobject obj, jobject document) { HPDF_Doc pdf = get_HPDF_Doc(env, document); HPDF_UseJPEncodings (pdf); HPDF_UseJPFonts (pdf); } JNIEXPORT void JNICALL Java_com_test_libharu_PdfPage_whiteText (JNIEnv *env, jobject obj, jfloat x, jfloat y, jstring text) { haru_setup_error_handler(env, __func__); HPDF_Page page = get_HPDF_Page(env, obj); const char* str = env->GetStringUTFChars(text, 0); HPDF_Page_TextOut (page, x, y, str); env->ReleaseStringUTFChars(text, str); haru_clear_error_handler(); } ```HPDF_Page_TextOut (page, x, y, str);のstrの部分を直値で "あああ"と渡しても文字化けすることは変わりません。。 どのような方法で解決できるか、ご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

libHaruのコード例の「jpfont_demo」などを見る限り、少なくともCJKについてはテキストをフォントエンコーディングで与えてやらないとだめなようです。あと、HPDF_UseJPEncodings()などの「おまじない」も必要なようです。

投稿2016/10/05 14:13

ikedas

総合スコア4227

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zine

2016/10/06 03:23

おまじないは記載した通り処理を行っております。 Fontに関しましては、MSゴシックをttfで読み込んで、エンコードは"90ms-RKSJ-H"を指定しています。自信はありませんが、文字化けしていることから日本語の表示はいけているのかなと感じていますが、そもそもこれが検討ちがいでしょうか? なぜ、どこで文字化けが起きているのか、わからない状態です。
ikedas

2016/10/06 03:37

ご質問でも書いておられる通り、「UTF-8の文字列をshift_jisで表示している」から文字化けしているのではではないでしょうか。 上で挙げたコード例では、日本語テキストのエンコーディングをUTF-8ではなくシフトジスにしています。ファイルから読み込む場合でもコード中に直書きする場合でもそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問