$ file -i Car.java
$ file -i CarDriver.java
在 Linux 中查看文件的编码
iconv 工具的使用方法如下:
$ iconv option
$ iconv options -f from-encoding -t to-encoding inputfile(s) -o outputfile
在这里,-f 或 --from-code 表明了输入编码,而 -t 或 --to-encoding 指定了输出编码。
为了列出所有已有编码的字符集,你可以使用以下命令:
$ iconv -l
列出所有已有编码字符集。下面的命令将会将 ISO-8859-1 编码转换为 UTF-8 编码。
在运行 iconv 命令之后,我们可以像下面这样检查输出文件的内容,和它使用的字符编码。
$ file -i input.file
$ cat input.file
$ iconv -f ISO-8859-1 -t UTF-8//TRANSLIT input.file -o out.file
$ cat out.file
$ file -i out.file
在 Linux 中将 ISO-8859-1 转化为 UTF-8
注意:如果输出编码后面添加了 //IGNORE 字符串,那些不能被转换的字符将不会被转换,并且在转换后,程序会显示一条错误信息。
好,如果字符串 //TRANSLIT 被添加到了上面例子中的输出编码之后 (UTF-8//TRANSLIT),待转换的字符会尽量采用形译原则。也就是说,如果某个字符在输出编码方案中不能被表示的话,它将会被替换为一个形状比较相似的字符。
JAVA有一个public String(byte bytes[], Charset charset)函数可以用指定字节数组和编码来构造字符串。一个public byte[] getBytes(Charset charset)函数把字符串按指定编码来得到字节数组。可以用这两个函数来实现编码转换。下面是一个简单的例子,注意一下例子中的文字本身的编码,最好在自己的环境中用gb2312重新输入,不然可能是乱码。当然转换后输出肯定有一个是乱码,也肯能都是乱码。根据你的编辑器的编码格式有关。public class EncodingTest
{
public static void main(String[] args)
{
try
{
String gb = new String("国标2312".getBytes(),"gb2312")
System.out.println(gb)
byte [] b = gb.getBytes("gb2312")
String ios = new String(b,"ISO-8859-1")
System.out.println(ios)
} catch (UnsupportedEncodingException e)
{
e.printStackTrace()
}
}
}
解决的方法之一:
在每一个网页里增加
<meta
http-equiv="Content-Language"
content="zh-cn">
<meta
http-equiv="Content-Type"
content="text/html
charset=GB2312">
并在APACHE的httpd.conf配置文件中将AddDefaultCharset
ISO-8859-1
改为
AddDefaultCharset
off
解决的方法之二:
直接在httpd.conf配置文件中将AddDefaultCharset
ISO-8859-1
改为
AddDefaultCharset
GB2312
.ZH-CN
.zh-cn
上述两种方法都可以解决apache
Web服务器网页显示乱码的问题。
其中以第二种方法最好最简单,且一劳永逸。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)