【发布时间】:2012-08-24 11:50:20
【问题描述】:
我正在使用 Django 1.4 开发一个网站,并在注册过程中使用 django-registration。事实证明,当用户输入时,Unicode 字符不允许作为用户名。作为用户名一部分的中文字符注册失败:
该值只能包含字母、数字和@/./+/-/_ 字符。
是否可以更改它以便在用户名中允许使用 Unicode 字符?如果是,我该怎么做?还有,会不会有什么问题?
【问题讨论】:
-
在检索用户名和其他字段时,您可以尝试将它们编码为 utf-8,然后将其存储。尝试 -> 编码('utf-8')。
-
感谢您的建议。一位来自新加坡的用户向我报告说,当他尝试使用仅包含拉丁字符的用户名进行注册时,他可以看到上述错误消息。他的系统和键盘配置为输入中文字符,所以我怀疑他在表单中输入的任何内容都被编码为 Unicode。您认为转换为 utf-8 会解决此问题吗?
-
是的,它应该可以解决问题。查看我们的网站 www.vialogues.com,尝试使用任何外语创建帐户。我们使用相同的东西,转换为 utf-8。
-
谢谢,你也使用 django-registration 吗?请问你在哪里转换成utf-8?
-
刚刚创建了一个带有一些波兰变音符号的帐户
标签: python django unicode internationalization django-registration