System.out.println(java.net.URLEncoder.encode("北京", "iso-8859-1"));
System.out.println(java.net.URLEncoder.encode("北京", "gbk"));
System.out.println(java.net.URLEncoder.encode("北京", "utf-8"));=========================打印信息 如下%3F%3F
%B1%B1%BE%A9
%E5%8C%97%E4%BA%AC
谁帮忙解释一下 其中的原理?
System.out.println(java.net.URLEncoder.encode("北京", "gbk"));
System.out.println(java.net.URLEncoder.encode("北京", "utf-8"));=========================打印信息 如下%3F%3F
%B1%B1%BE%A9
%E5%8C%97%E4%BA%AC
谁帮忙解释一下 其中的原理?
第二个,GBK是双字节编码,一个中文转成2个字节,没什么问题
第三个,utf-8是多字节编码,中文字我印象中都是三字节,所以,一共有6字节
gbk是中文字符编码 是双字节的
utf-8字符编码是三个字节的
byte[] b = "北京".getBytes("iso-8859-1");
for (int i = 0; i < b.length; i++) {
System.out.println((int)b[i]);
}
输出为:
63
63
这是因为iso-8859-1编码是不能识别汉字的,所以会把他们通通转换为值为63的单字节。
那么接下来URLEncoder会把这些字节转换为16进制数-3F(63), 同时加上一个%标识。这也是因为初始字符串是
对于非ASCII字符的原因。
// 11 22 11.txt 均不存在
File file = new File("c:/11/22/11.txt");
if(file.exists() == false){
file.createNewFile();
}
请问一下: 创建文件的时候 必须得 先穿件 目录 , 再创建文件吗?除了自己一步步的创建 有没有办法 一下子把 c:/11/22/11.txt 创建出来??貌似 我c:/23.txt 这样子就很easy 的创建出文件来了
噢 明白了 多谢啊。还有谁帮忙解决一下 7楼的问题? 据我所知, mkdir mkdirs 只能创建目录而 createNewFile 只能创建文件? 除了 自己实现之外, 系统提供一次性创建 “目录 + 文件” 的api吗
package com.csdn.test;import java.io.File;
import java.io.IOException;public class Test
{
public static void main(String[] args)
{
File file = new File("E:\\111\\222");
if (!file.exists())
{
try
{
file.mkdirs();
file = new File(file, "111.txt");
file.createNewFile();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
{
file.getParent().mkdirs();
再创建文件一次。
}