2017-05-07 11 views
3

Unicode文字をレンダリングするときのPythonで選択されたフォントを持つ中国語文字は、共通のUnicode文字に関してはフォントが不完全であり、問​​題のUnicode文字をレンダリングできないことがあります。そのような場合、私が "print"関数を呼び出すと、その出力は、基本的なUnicode文字がどのように見えるかにかかわらず、正方形のボックスのように見えます。PythonのUnicodeレンダリング:フォントにUnicode文字がないかどうかを調べる方法

もちろん、一度Unicode文字を印刷すると、出力を見てから、選択したフォントが特定のUnicode文字を紛失していると判断できます。しかし、文字がフォントに含まれているかどうかを判断するために、自分の人間の目に頼らずに、自動的に印刷する前に通知する方法はありますか?

私は、他のフォントよりも完全なフォントを知っていることを明確にしたいと思います。私の質問は、私が "print"と呼んだ場合、私は一般的に合理的な出力を得るために、私が使用できるフォントではありません。また、文字をどのように印刷するのか、実際に文字を印刷したいのかという質問も無視してください。私の質問は、単純に、任意のフォントについて、出力の人間の判断に依存する手動のプロセスを使用せずに、フォントからUnicode文字が欠落しているかどうかをどのように伝えるかです。

+0

おそらくOSは違いがあります。どちらを使用していますか? –

+1

printを呼び出すときにどのフォントが使用されているのか、どのように知っていますか?要するに、stdout上のテキストは、端末、ファイル、その他のアプリケーションに向かう可能性があります...要するに、この問題は、それ以上の制約なしに答えることはできません。 –

+0

私はあなたが私のポイントを見逃していると思います。文字を印刷するかどうかにかかわらず、フォントに文字が含まれているかどうかを知りたいだけです。 – MichM

答えて

5

は1つが、fonttoolsパッケージをインストールする目的の任意の.ttfフォントファイルへのパスでそれを供給し、関心のUnicode文字の長い形式が含まれているかどうかを確認することができ、要するに

https://unix.stackexchange.com/questions/247108/how-to-find-out-which-unicode-codepoints-are-defined-in-a-ttf-fileを参照してください。フォントファイルのユニコードマップテーブル。

次に、char_in_font関数を呼び出して、Unicode文字がフォントに含まれているかどうかを確認してください。

+0

通常、私はリンクのみの回答については不平を言いますが、このケースでは別のStackExchangeサイトへのリンクです...そして要約を提供しました。 –

+0

@ MarkRansomそれではあなたの説明ではリンクだけではありません;) – MichM

+0

はい、いいえ - 要約だけで解決策をコード化するのには十分ではありません。 P.S.答えを見つけて私たちの残りの人に知らせるために戻ってきたことをお祝いして、あなたはいつか誰かのベーコンを救うかもしれません。 –

関連する問題