Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将unicode字符串从django传递到javascript_Javascript_Python_Django_Unicode - Fatal编程技术网

将unicode字符串从django传递到javascript

将unicode字符串从django传递到javascript,javascript,python,django,unicode,Javascript,Python,Django,Unicode,我的数据中有一堆unicode字符串,我需要将它们从django视图传递到模板,以便在JavaScript脚本中使用,JavaScript脚本将其来回传递到web 问题是我希望字符串以JavaScript-unicode形式表示,但我从python获得前缀为u的字符串 例如,对于字符串męczyźni,Python将其存储为u'm\u0119\u017cczy\u017ani',但当它被传递到模板时,它不会删除u前缀,这会在处理它时给JavaScript带来问题。我希望它只是'm\u0119\u

我的数据中有一堆unicode字符串,我需要将它们从django视图传递到模板,以便在JavaScript脚本中使用,JavaScript脚本将其来回传递到web

问题是我希望字符串以JavaScript-unicode形式表示,但我从python获得前缀为u的字符串

例如,对于字符串męczyźni,Python将其存储为u'm\u0119\u017cczy\u017ani',但当它被传递到模板时,它不会删除u前缀,这会在处理它时给JavaScript带来问题。我希望它只是'm\u0119\u017cczy\u017ani',以便模板中的JavaScript代码可以使用它

我尝试使用urqluote、smart_-unicode、force_-unicode,但没有找到解决方案,甚至没有破解


我该怎么办

编辑:Django 1.7+。而不是

from django.utils import simplejson

然后使用
json
而不是
simplejson


您可能正在打印数据dict的python repr,并尝试用javascript解析它:

{{ your_python_data }}
var your_data = {{ json_data_string }};
相反,您可以以json格式导出数据:

from django.utils import simplejson

json_data_string = simplejson.dumps(your_data)
并直接在javascript中加载数据:

{{ your_python_data }}
var your_data = {{ json_data_string }};
您还可以制作一个:

在模板中:

{% load your_template_tags %}

{{ your_python_data|as_json }}

请注意,使用XSS时应小心,如果某些“数据”来自用户输入,则应对其进行清理。

是否尝试显示视图和模板代码。@BurhanKhalid使用
escapejs
也会转换单引号。但这是一个很好的暗示。谢谢。谢谢@jpic,这很有效。我只是需要添加一个安全的过滤器来正确渲染它。现在,我的代码是这样的:
{{your_python_data}as_json | safe}
Nice,更新答案。。别忘了,显然,simpleJson不受欢迎。您知道是什么取代了它吗?不再包括本机json模块django 1.7+simplejson。而是使用
json
-模块。我会建议编辑。