文字エンコーディングにほとんど問題はありません。データベース、文字エンコーディング、PDFおよびXML
XMLに変換される状況
ファイルがアップロードされます。このファイルの文字エンコーディングは異なりますが、スマート引用符、エンティティ、およびさまざまなASCIIが表示されることがあります。このファイルがXMLに変換されると、データベースに格納されます。ユーザーの要求に応じて、XMLはデータベースから抽出され、配列に変換され、次にPDFに作成されます。
問題
文字エンコーディング。最初から文字エンコーディングが大きな問題となっています。私が知りたいのですが;
- 一般に、どの文字エンコーディングが「スペクトル」全体をカバーしていますか?たとえば、
°
は、XMLまたはスマート・クォート(’
)の解析時に認識されません。スマートな見積もりは、’
などになります。 - XMLをデータベースに保存する方法。暗号化は可能ですが、データベースのエンコーディングはどこで失われています。
- エンティティ、スマート引用符(および問題を引き起こす可能性のあるその他の文字)を正しくデータベースに表示し、
Å
をstuffの前に表示する方法。他にいくつかの文字を変換する - 仕事で
試みが周り
私は私の問題を解決するための「試み」様々な機能を作ってきました。しかし、私はこれがだと完全にであると仮定しています。私は文字エンコーディングを変更する必要があります。
/*
* Converts smart quotes to ascii
*/
function convert_smart_quotes($string) {
$string = iconv("UTF-8", "UTF-32", $string);
$string = mb_convert_encoding($string, 'HTML-ENTITIES', 'UTF-32');
$string = str_replace('', '', $string);
$search = array('‘', '’', '“', '”', '—');
$replace= array("'", "'", '"', '"', '-');
$string = str_replace($search, $replace, $string);
return $string;
}
/*
* Converts some entities to an ISO format?
*
* Example : ° => °
*/
function entity_to_iso($string) {
return html_entity_decode($string, ENT_QUOTES & ~ENT_COMPAT, 'ISO-8859-1');
}
私の問題は、アップロードされたファイルのエンコーディングがわからないという事実にあります。私はswitch
というアイデアを持っていて、文字を何か他のデータベースに変換して "PDFにやさしい"ものにしようとしました。しかし、多くのグーグルは、苦い仕事の周囲や配列str_replace
別のものをもたらしている。これは本当に解決策ですか?
より良い方向に指し示されたアドバイス、解決策または指は、すべて参考になり非常に高く評価されます。ありがとうございました。
こんにちはメイト、私はこれと似た問題を抱えていましたか? – Drakoumel