翻訳比較ツール を更新しました

  • 長らくメンテナンス中となっている京大翻訳を一旦除外しました。
  • excite翻訳の対日本語訳が文字化けしていたのを修正しました。
  • 翻訳ユニット全体のOn/Offスイッチが付きました。

Webツール Planetleaf.com Lab.
http://tools.planetleaf.com/

2014-06-14-updated-web-tools-trans

DOM 処理周りの修正

ホスティングサーバーのPHP周りの仕様次第ですが、自宅に設置しているサーバーでは起こっていなかった問題がありまして、今回はこの修正がメインです。

各翻訳ユニットは一度htmlからdomドキュメントとして内部で処理しています。

$html = file_get_contents($url, false, $context);
	
$response = strpos($http_response_header[0], '200');
if ( $response ) {
	$dom = new DOMDocument();
	$dom->loadHTML($html);

このようにしているとloadHTMLでdomのドキュメントを作成した際に、エンコードが崩れるという現象が出たため以下のように修正を加えました。

$html = file_get_contents($url, false, $context);
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'ASCII, JIS, UTF-8, EUC-JP, SJIS');
	
$response = strpos($http_response_header[0], '200');
if ( $response ) {
	$dom = new DOMDocument();
	$dom->loadHTML($html);

状況次第なのでしょうがエンティティが正常に判別されないケースがあるようなので、この方法が安全かと思います。

カテゴリーBLOG

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください