适用于带有casperjs + slimerjs的console.log的UTF-8?

时间:2016-06-09 15:16:21

标签: ajax utf-8 casperjs slimerjs

考虑下面的两个测试文件,test_load_utf8.php这是一个要检查的网页 - 以及test_load_utf8.js,这是一个使用带引擎{casperjs检查此页面的脚本1}}(版本0.10.1-pre)。

您可以在与这些文件相同的目录中使用slimerjs,该网页将在php -S localhost:8080处提供。单击该按钮时,将通过AJAX调用检索JSON对象,并显示在div:

ffoxutf8

从图像中可以看出,UTF-8字符没有问题。

使用http://127.0.0.1:8080/test_load_utf8.php,我想捕获带有UTF-8文本的AJAX响应。但是,当我从命令提示符/终端(Ubuntu 14.04上的test_load_utf8.js)运行脚本时,我得到了这个:

bash

请注意,打印输出没有实际的UTF-8字符,但它们是经过编码的。事实上,在我的实际问题中(超出此测试),我甚至没有得到UTF-8编码,但是我得到$ /home/USERNAME/.nvm/versions/node/v4.0.0/lib/node_modules/casperjs/bin/casperjs --engine=slimerjs test_load_utf8.js website opened resp.body: {"one":"Hello \u2013 \ufeff\u0915\u093e\u091a\u0902 \u03bc\u03b5","two":"\u00e7a \u00f8y je\u015b\u0107 \u044f\u0441\u0442\u044c"} â,我猜这是一些ASCII编码混合某处。

所以,我的问题是 - 如何在终端的输出中获得正确的UTF-8字符?也就是说,脚本的输出应为:

console.log

编辑:忘记粘贴文件 resp.body: {"one":"Hello – काचं με","two":"ça øy jeść ясть"}

:)

test_load_utf8.php

<?php if (array_key_exists("QUERY_STRING", $_SERVER)) { if ($_SERVER["QUERY_STRING"] == "getjson") { $message = new stdClass; $message->one = "Hello – काचं με"; $message->two = "ça øy jeść ясть"; header('Content-Type: application/json; charset=utf-8', true,200); echo json_encode($message); exit; } } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style type="text/css"> #dataholder { border: 2px solid gray; width: 70%; height: 150px; } .my_btn { background-color:yellow; } </style> <script src="http://code.jquery.com/jquery-1.12.4.min.js"></script> <script type="text/javascript"> var thishref = window.location.href.slice(0, window.location.href.indexOf('?')+1); var qstr = window.location.href.slice(window.location.href.indexOf('?')+1); function OnGetdata(inbtn) { console.log("OnGetdata; loading ?getjson via AJAX call"); $.ajax({url: thishref + "?getjson", async: true, success: function(data) { console.log("got getjson data " , data); // object here $("#dataholder").html(JSON.stringify(data)); }, error: function(xhr, ajaxOptions, thrownError) { console.log("getjson error " + thishref + " : " + xhr.status + " / " + thrownError); } }); } ondocready = function() { $("#getdatabtn").click(function(){ OnGetdata(this); }); } $(document).ready(ondocready); </script> </head> <body> <h1>Hello World!</h1> <button type="button" id="getdatabtn" class="my_btn">Get Data!</button> <div id="dataholder"></div> </body> </html>

test_load_utf8.js

0 个答案:

没有答案