Phantomjs: Phantomjs tidak dapat ditampilkan — atau kata-kata UTF-8 lainnya.

Dibuat pada 16 Mar 2014  ·  3Komentar  ·  Sumber: ariya/phantomjs

Saya menulis url2src.js untuk mengonversi file html ke file html lain yang semua javascriptnya diproses.
Saya menemukan jika ada beberapa kata UTF-8 (seperti —), hasilnya tidak benar.

Saya menggunakan Windows 8.1 versi Cina. dan jalankan perintah ini di windows cmd:

d:\epub\components>phantomjs  --output-encoding=utf8 --script-encoding=utf8 url2src.js activities2.html activities2-processed.html
d:\epub\components>phantomjs --version
1.9.7

konten url2src.js adalah:

var page = require('webpage').create(),
    system = require('system'),
    t, address, output;

if (system.args.length !== 3) {
    console.log('Usage: url2src.js <some URL> <output File path>');
    phantom.exit();
}

t = Date.now();
address = system.args[1];
output = system.args[2];
page.open(address, function (status) {
    if (status !== 'success') {
        console.log('FAIL to load the address : ' + address);
    } else {
        t = Date.now() - t;
        //console.log('Loading time ' + t + ' ms');
        var js = page.evaluate(function () {
            return document;
        });
        //console.log(js.all[0].outerHTML); 
        var fs = require('fs');
        try {
            fs.write(output, js.all[0].outerHTML, 'w');
        } catch(e) {
            console.log(e);
        }
    }
    phantom.exit();
});

Info lebih detail ada di lampiran di sini:
https://groups.google.com/forum/#!topic/phantomjs/oqvK8mkk6aY

Bantuan apa pun dihargai.

Komentar yang paling membantu

Saya tahu alasannya sekarang, karena dokumen html input diperlakukan sebagai ISO-8859-1 sebagai default.
Tambahkan meta ke set charset=utf-8 dapat menyelesaikan masalah ini.

<html>
<head>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 </head>
 <body>
    <p> The user interface for an activity is provided by a hierarchy of views—objects derived from the <code>View</code> class. </p> 
 </body>
</html>

Semua 3 komentar

Saya tahu alasannya sekarang, karena dokumen html input diperlakukan sebagai ISO-8859-1 sebagai default.
Tambahkan meta ke set charset=utf-8 dapat menyelesaikan masalah ini.

<html>
<head>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 </head>
 <body>
    <p> The user interface for an activity is provided by a hierarchy of views—objects derived from the <code>View</code> class. </p> 
 </body>
</html>

Anda benar. Namun, saya tidak dapat mengubah html yang diberikan orang lain kepada saya. Bagaimana caranya?

Saya memiliki beberapa dokumen yang tidak memiliki informasi tajuk (saya mendapatkannya dari aplikasi pihak ketiga)... cara untuk memaksa penyandian akan menyenangkan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat