URL参数中汉字转换为16进制Unicode形式

导入JAR包: 
import java.net.*; 
把汉字转换为16进制Unicode形式: 
String xw="新闻中心"; 
String name=URLEncoder.encode(xw,"utf-8"); 
把16进制Unicode形式字符串转换为汉字: 
URLDecoder.decode("%E6%96%B0%E9%97%BB%E4%B8%AD%E5%BF%83","utf-8");

注意:从A(UTF-8)页面中跳到B页面时:参数name带有16进制参数值时,在B页面中使用,request.getParameter()获取的参数是乱码。还不能使用URLDecoder.decode(name,"utf-8");获取"新闻中心"; 
补充: 
在A页面中: 
<% 
String xw="新闻中心"; 
String name=URLEncoder.encode(xw,"utf-8"); 
request.setParameter("name","name");%> 
在B页面中: 
<% 
String xw=URLDecoder.decode(new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8"),"utf-8");%>这样就不会出现乱码了。

时间: 2024-10-13 17:50:44

URL参数中汉字转换为16进制Unicode形式的相关文章

汉字转换为16进制

汉字转换为16进制.%C0%EE%CE%C4%B4%CF  对应  李文聪一个汉字对应两个十六进制源码如下:int main(){  int i;  char* str = "李文聪";  char res_tmp[100];  char res[100] = {"%"};   for (i = 0; i < strlen(str); i++)  {      sprintf(res_tmp + 3*i, "%02X ", (unsigne

颜色中透明度转换为16进制的计算方法

颜色用6位16进制表示,如#ffffff,全为f,说明是各种颜色的组合,是白色. #000000是什么颜色都没有,那就是黑色.. 加上透明度,则再加2位16进制如:#00ffffff,共8位16进制的数字.前两位:00表示完全透明,ff表示完全不透明.其余的则根据不透明度的百分比来计算. 如白色,不透明度为30%,那么颜色值表示为#**ffffff表示白色,透明度的计算: 255x30%,转换为16进制数即可,为4c,所以8位颜色为:#4cffffff.

Qt实现16进制unicode转utf-8以及国际音标编码问题

由于项目需要,需要对网络资源进行解码.遇到编码问题.研究了下基本编码原理.于是有了下面两个通用代码 [cpp] view plaincopy 1. 16进制unicode转换为utf-8中文显示 QString unicodeToUtf_8(const QString &resStr) { //  unicode转utf-8  思路: 一个unicode编码占用2字节.所以只需要用4个16进制数字结合表示就行了 QString temp; for (int i = 0; i< resStr.

js中如何把RGB颜色转换为16进制颜色

将RGB颜色值转换为16进制颜色值,主要是将 R.G.B 值分别转换为对应的十六进制值,填入 #RRGGBB 中. 推荐在线颜色转换工具:http://www.ecjson.com/rgbhex/ 例子: 输入:rgb(176,114,98) 输出:#B07262 代码如下: function colorRGBtoHex(color) { var rgb = color.split(','); var r = parseInt(rgb[0].split('(')[1]); var g = par

Java中byte与16进制字符串的互相转换

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上. 根据以上原理,我们就可

Java中byte与16进制字符串的互相转换(转)

Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L).即byte用十六进制表示只占2位. 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上. 根据以上原理,我们就可

C# 中2,10,16进制及其ASCII码之间转化

C# 中2,10,16进制及其ASCII码之间转化             --------//C#中各种字符类型的转化,使用于串口通信------------ //字符长度的理解            string s = "我是一个2兵";            int len = s.Length;//6个字符              byte[] sarr = System.Text.Encoding.Default.GetBytes(s);            len =

汉字转16进制ASCII码

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestConsole { class Program { static void Main(string[] args) { byte[] b = ASCIIEncoding.Default.GetBytes("阿"); foreach (var s in b) { Console.WriteL

java中byte[] 和16进制字符串互转

//将byte[]转换为16进制字符串 public static String byte2hex(byte[] b) { StringBuilder hs = new StringBuilder(); String stmp; for (int n = 0; b != null && n < b.length; n++) { stmp = Integer.toHexString(b[n] & 0XFF); if (stmp.length() == 1) hs.append(