最近初学django,直接在linux上搭建,遇到了不少问题。一个比较头疼的问题就是编码问题。
按照django book搭建好以后访问admin,需要修改默认的admin_site.html里面的django后台管理为自己的系统名字,发现一输入中文就报错,在网上海翻了一些资料,发现是编码问题。网上一致说用utf-8比较好。那么编辑工具,数据库,程序和页面都要统一为utf-8。
1.编辑工具:用vim编辑的,默认不是utf-8,在网上找资料,说什么的都有!发现设置vim的编码是在~/.vimrc文件里面。我的系统自带没有,创建了一个文件。不停的试,在里面的设置如下就成功了:
set encoding=utf8:使用与缓冲的文本,也就是正在编辑的文件,可以理解为vim内部运行的机制。
set fencs=utf8,cp936:fencs就是用来在打开文件的时候进行解码的猜测列表。文件编码没有百分百正确的判断方法,所以vim只能猜测文件编码
set termencoding=cp936 :用ssh远程登录需要设置这个,该编码为中文windows的默认值
set fileencoding=utf8:这个东西尤其重要这个配置的是新建文件和保存文件时文件的编码,如果它的值与encoding(enc)不一样,那么保存的时候Vim会自动把文件内容由encoding(enc)的编码转换为fileencoding(fenc)配置编码再保存。而读取文件的时候,该选项的值会自动同步为fileencodings(fencs):配置的有效编码。(实际上就是上面说的转换规则)
总之很容易被他们搞晕--
2.数据库:我按照网上给的查看数据库编码方式查看,发现搭建好以后默认就是utf-8,所以这点略过,网上关于这点有不少答案。
3.程序:我这儿是用的python,因此所有py结尾的文件得在第一行加上一句
#coding=utf-8,python官网有说明。
4.页面:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />这一行是设置页面编码,不过后来我发现后面的有一些html文件没加这句话也能正常显示。再继续研究吧!
初学者在Linux环境下搭建Django时遇到中文编码问题,主要涉及vim编辑器、数据库、程序和页面编码。通过设置vim的~/.vimrc文件,包括encoding、fencs、termencoding和fileencoding选项,确保文件以utf-8编码。数据库默认为utf-8,Python文件添加#coding=utf-8注释,HTML页面添加charset=utf-8元标签,逐步解决编码不一致导致的错误。

9619

被折叠的 条评论
为什么被折叠?



