当尝试通过JS插入非ascii字符时出现UnicodeDecodeError

UnicodeDecodeError when try to insert non-ascii character via JS

本文关键字:字符 ascii UnicodeDecodeError 插入 JS      更新时间:2023-09-26

在Django模板和js中,我需要能够在单击按钮时将任何字符插入文本区域。

下面的代码工作得很好,但是当我用一个特殊字符(如æ)替换X时,我得到一个错误:

UnicodeDecodeError: 'utf8' codec can't decode byte

模板:

<textarea id = "textarea"></textarea>
<button str = "X" id = "button">Insert X</button>
 ( Fails if X replaced by non-standard char, for example æ)
<script>
 $("#button").click(function(e) {
     str_to_insert = $(this).attr("str");
     $("#textarea").val(str_to_insert);
 })
</script>
Django:

# coding=UTF-8
import some stuff
def display_my_page(request):
    return render_to_response("my_page.html", {})
错误:

'utf8'编解码器无法解码位置54中的字节0xe6:无效的延续字节

(编辑:我已经包含了更多的错误信息,但现在已经删除了它的问题清晰。)事实证明,这与答案无关。)

问题原来是,我使用的编辑器。html (notepad++)的编码设置为ANSI。

我将notepad++的编码改为"UTF-8",这使得特殊字符看起来很时髦。然后我重写了它们