所以,我正在从perl的system
方法运行wkhtmltopdf命令脚本。我需要它通过命令行将自定义值(span类)传递给pdf:
我的$ time =“Время”;
my $ command =“./ wkhtmltopdf ... blablabla ... gen_date \”$ time \“... blablabla ...”;
但是当我运行它时 - 我在输出.pdf中编码垃圾就像那样: - ÐÑÐμмÑ。
尝试了我所知道的几乎所有编码/解码$time
字符串,但没有。
我的javascript代码段对于wkhtmltopdf很常见,所以......
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<head>
<script>
function subst() {
var vars = {};
var query_strings_from_url = document.location.search.substring(1).split('&');
for (var query_string in query_strings_from_url) {
if (query_strings_from_url.hasOwnProperty(query_string)) {
var temp_var = query_strings_from_url[query_string].split('=', 2);
vars[temp_var[0]] = decodeURI(temp_var[1]);
}
}
var css_selector_classes = ['gen_date', 'page'];
for (var css_class in css_selector_classes) {
if (css_selector_classes.hasOwnProperty(css_class)) {
var element = document.getElementsByClassName(css_selector_classes[css_class]);
for (var j = 0; j < element.length; ++j) {
element[j].textContent = vars[css_selector_classes[css_class]];
}
}
}
}
</script>
</head>
你能帮我解决一下吗?
答案 0 :(得分:0)
找到rason之后为什么会发生这种情况,我发现JS更有可能以其字节数组的格式运行。现在,西里尔字符串被编码为%u0000%u0000...
,然后在javascript中,此字符串通过内置unescape
函数,现在我在pdf中有正常的西里尔字符串。
哦,我的......