「java地址编码」Java地址

博主:adminadmin 2023-01-19 05:15:08 358

本篇文章给大家谈谈java地址编码,以及Java地址对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java web程序中对地址栏中文解码的方式有哪些?

浏览器和服务器之间是否能传递中文取决于服务器端的解码方式。一、可以修改服务器配置文件以提供中文解码支持;二、在浏览器中对路径进行编码,如使用encodeUrl(完整路径)进行utf-8编码,服务器端用java.net.Decoder.decoder(获取传递的中文之值)进行解码,这时request.setcharacter encode()方法要设置为对应的utf-8。

地址栏中有汉字,java如何利用对url编码求解

地址栏中出现汉字的情况有两种,一种是汉字出现在URL的路径部分,一种是汉字出现在URL的传参的部分,第二种情况的时候必须采用编码后传参,接受时解码的方式完成传参。js中编码有escape(),encodeURI(),encodeURIComponent()三个常用的方法,escape()常常用在提交页面和处理页面的编码格式相同的情况下(比如它们都是GB2312),encodeURI()和encodeURIComponent()的用法基本相同,区别在于encodeURIComponent()也对"?"等特殊字符进行编码。

一开始遇到中文参数的时候,使用encodeURI()进行了一遍编码,传过去后,发现解码出现问题,于是想到可能是编码方法使用错误,于是使用escape()方法,这时发现解码时抛出isHexDigit异常。借助百度搜索isHexDigit异常,

发现原来,是escape()方法造成了异常,同时了解了浏览器传递地址的一些原理,在浏览器地址栏里,浏览器认为%是个转义字符,浏览器会把%与%之间的编码,两位两位取出后进行解码,然后再传递给处理页面,

然后由处理页面进行再次解码。由此我想到一直使用encodeURI方法是正确的,只是需要使用两次encodeURI方法,例如encodeURI(encodeURI("中文"));第一次是把中文编码成%xy的格式,

第二次是对%xy中的%进行编码,%编码成%25。整个传参过程大体应该是:提交页面使用encodeURI(encodeURI("中文"))编码,把最后的编码结果%25xy传递给处理页面的过程中,浏览器获取URL地址

(注意openModelDialog方法,浏览器获取不到参数编码)后解码成%xy,然后把%xy传递给处理页面,处理页面使用URLDecoder.decode(request.getParameter("参数名"),"UTF-8");完成解码。

总结:1、汉字出现在URL路径部分的时候不需要编码解码;

Java编码详解UTF-8 UTF-16 UTF-16BE UTF-16LE,具体有什么不同,求高手指点

编码长度和方式不同。

UTF-16BE: 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节,符合人们的阅读习惯)字节顺序

UTF-16LE: 16 位 UCS 转换格式,Little-endian(最高地址存放高位字节)字节顺序

java获取局域网ip地址 具体代码

import java.io.*;

import java.util.*;

import java.net.InetAddress;

public class Ip{

static public HashMap ping; //ping 后的结果集

public HashMap getPing(){ //用来得到ping后的结果集

return ping;

}

//当前线程的数量, 防止过多线程摧毁电脑

static int threadCount = 0;

public Ip() {

ping = new HashMap();

}

public void Ping(String ip) throws Exception{

//最多30个线程

while(threadCount30)

Thread.sleep(50);

threadCount +=1;

PingIp p = new PingIp(ip);

p.start();

}

public void PingAll() throws Exception{

//首先得到本机的IP,得到网段

InetAddress host = InetAddress.getLocalHost();

String hostAddress = host.getHostAddress();

int k=0;

k=hostAddress.lastIndexOf(".");

String ss = hostAddress.substring(0,k+1);

for(int i=1;i =255;i++){ //对所有局域网Ip

String iip=ss+i;

Ping(iip);

}

//等着所有Ping结束

while(threadCount0)

Thread.sleep(50);

}

public static void main(String[] args) throws Exception{

Ip ip= new Ip();

ip.PingAll();

java.util.Set entries = ping.entrySet();

Iterator iter=entries.iterator();

String k;

while(iter.hasNext()){

Map.Entry entry=(Map.Entry)iter.next();

String key=(String)entry.getKey();

String value=(String)entry.getValue();

if(value.equals("true"))

System.out.println(key+"--"+value);

}

}

class PingIp extends Thread{

public String ip; // IP

public PingIp(String ip){

this.ip=ip;

}

public void run(){

try{

Process p= Runtime.getRuntime().exec ("ping "+ip+ " -w 300 -n 1");

InputStreamReader ir = new InputStreamReader(p.getInputStream());

LineNumberReader input = new LineNumberReader (ir);

//读取结果行

for (int i=1 ; i 7; i++)

input.readLine();

String line= input.readLine();

if (line.length() 17 || line.substring(8,17).equals("timed out"))

ping.put(ip,"false");

else

ping.put(ip,"true");

//线程结束

threadCount -= 1;

}catch (IOException e){}

}

}

}

javahttpclient怎么设置url编码

可以把你的这段代码简化一下pre t="code" l="java" ins = method.getResponseBodyAsStream();

byte[] b = new byte[1024];

int r_len = 0;

while ((r_len = ins.read(b)) 0)

{

result.append(new String(b, 0, r_len, method.getResponseCharSet()));

}替换为:

pre t="code" l="java"byte[] ba = method.getResponseBody();

String str= new String(ba,"UTF-8"); //得到指定编码格式的字符串这里的str就是你的返回值。这段代码我使用过,可以解决乱码问题

java地址编码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java地址、java地址编码的信息别忘了在本站进行查找喔。