android studio编码格式设置

来源:互联网 发布:快递怎么延长收货 淘宝 编辑:程序博客网 时间:2024/06/18 00:21


  • 代码文件可以不用utf-8编码,但是如果非utf-8编码的代码文件中用代码设置了androidui内容,在安卓系统跑起来后,如果内容是中文,没有做其他设置的话,设置的ui内容会呈现乱码,因为安卓默认情况下以utf-8的解码方式,比如以下代码,如果代码文件是gbk编码,textview上出现的是乱码



tvtest = (TextView) findViewById(R.id.tvtest);

tvtest.setText("我的世界");





  • as的偏好设置中,可以设置编码(Editor->File Encodings),这里的设置对于已经存在的文件,只能设置其编码(以设定的编码去解码文件,文件的二进制内容不变),并不能转码(对单个文件设置编码时会提示是否转码)。



        1.里面的IDE Encoding设置的是IDE的编码,比如把IDE Encoding设置为gbk,则以后所有新建工程中(关闭后再打开也一样),ide自动生成的文件中,.java .gradle .pro gitignore等文件的编码就会是gbk.xml .txt  .properties等文件的编码定死了是utf-8,不会随IDE Encoding的改变而改变,对ide encoding的改变要下次新建工程才能体现,

而且只体现在自动生成的文件上,比如对ide编码为gbk的工程再新建java文件,编码以project编码或当期包设置的编码为准

        2.里面的Project Encoding设置的是每个新建工程各自的编码(跟IDE Encoding不一样,IDE Encoding影响的是整个IDE,会对所有工程做相应改变,Project Encoding只对

          当前工程有效),对于工程中已经有的文件(包括自动生成的文件,导入或打开已有工程时之前已经存在的文件),这个设置不会对这些已有文件做任何改变(不会转

          码),而对于工程中新建的.java .gradle .pro gitignore等类型的文件的编码会是Project Encoding设置的编码,.xml .txt  .properties等文件的编码定死了是utf-8,不会随                     Project   Encoding的改变而改变

        3.底下的override encoding for files/directories用于设置单个文件或某个目录下的所有子目录和子文件的编码。

  • 设置目录编码时,as会以设定的编码重新解码所影响的文件并展示到ide中,比如              一个.java文件原来是gbk编码,默认情况下,以utf-8展示出来,中文会是乱码,对这个文件上层包单独设置gbk编码后,就不会出现乱码了,如果一个包中设置了整个包的编码是             gbk,而Project Encoding设置为utf-8,会以包设置为优先(包中新建的文件是gbk编码),也就是说目录的编码设置和单个文件的编码设置会优先于整个工程的编码设置
  • 对单个文件设置编码时,会提示是以设置的编码去解码,还是转成设置的编码(跟在文件编辑器里点右键旋转编码一样)

4.最下面的设置可以设置属性文件的编码,as会以设定的编码重新解码工程中所有的.properties文件并展示到ide中,新建的.properties编码也会是设定的编码这个设置也只能            影响单个工程





  • android studio默认以utf-8编码,导入其他的非utf-8工程,或复制其他非utf-8编码的源码到工程时,中文会显示乱码,解决办法有2


1.设置单个文件的编码(或在偏好设置的encoding里设置单个文件的编码),可以真正的转码:


1、右键点击文件编辑区或项目文件列表中的文件选择File Encoding,在出现提示时选择文件对应的编码,比如 GBK

2、在出现的对话框中点击 Reload -> Reload anyway,此时源代码乱码消失,出现中文,reload表示以新编码方式重新加载文件

3、右键点击文件编辑区或项目文件列表中的文件选择File Encoding ,在出现提示时选择 UTF-8

4、在出现的对话框中点击 Convertcovert表示把文件转码为utf-8,这个是真正转码(文件的二进制内容改变了)

5. 所有文件重复上述操作




2.在偏好设置中设置目录的编码,这样做不是真正转码,而是以正确的方式去解码文件并呈现出来(指定文件真正的编码,才能以对应的解码方式呈现)


比如导入一个工程,里面的工程编码(Project Encoding)为gbk,导入后,默认编码是utf-8(默认工程编码是没法改变的,固定是utf-8),中文就会出现乱码,这时候在根目录设置编码为gbk(默认为project encodeing,即utf-8)(并不会影响底下.xml等类型的文件(utf-8),里面的中文就不会出现乱码了,但是如果在里面设置控件内容为中文,就会在安卓系统中呈现乱码,为解决这个问题,除了像第一种方法一个个去转码,还可以指定安卓编译系统的编码为"gbk"


android {

 ......

compileOptions {

encoding "GBK"

}

}






0 0
原创粉丝点击