Phantomjs: لا يمكن لـ Phantomjs إظهار - أو بعض كلمات UTF-8 الأخرى.

تم إنشاؤها على ١٦ مارس ٢٠١٤  ·  3تعليقات  ·  مصدر: ariya/phantomjs

أكتب عنوان url2src.js لتحويل ملف html إلى ملف html آخر حيث تتم معالجة جميع نصوص جافا سكريبت.
لقد وجدت أنه إذا كانت هناك بعض كلمات UTF-8 (مثل -) ، فإن النتيجة غير صحيحة.

أستخدم نسخة Windows 8.1 الصينية. وقم بتشغيل هذا الأمر في 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

محتوى url2src.js هو:

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();
});

مزيد من المعلومات التفصيلية موجودة في المرفق هنا:
https://groups.google.com/forum/#!topic/phantomjs/oqvK8mkk6aY

هو موضع تقدير أي مساعدة.

التعليق الأكثر فائدة

أعرف السبب الآن ، لأنه تم التعامل مع مستند html المدخل على أنه ISO-8859-1 كإعداد افتراضي.
أضف meta لتعيين charset = utf-8 يمكنها حل هذه المشكلة.

<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>

ال 3 كومينتر

أعرف السبب الآن ، لأنه تم التعامل مع مستند html المدخل على أنه ISO-8859-1 كإعداد افتراضي.
أضف meta لتعيين charset = utf-8 يمكنها حل هذه المشكلة.

<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>

أنت محق ومع ذلك لا يمكنني تغيير لغة تأشير النص الفائق التي يقدمها لي الآخرون. كيف أفعل؟

لدي بعض المستندات التي لا تحتوي على أي معلومات عن العنوان (أحصل عليها من تطبيقات الطرف الثالث) ... ستكون طريقة لفرض التشفير أمرًا رائعًا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات