容器复制
pApp->m_listdata.assign(m_VecXmlnodes.begin(), m_VecXmlnodes.end());
/*vector<CMainApp::XmlElement >::iterator it;
for(it = m_VecXmlnodes.begin();it != m_VecXmlnodes.end();++it)
{
pApp->m_lstcase.AddTail(*it);
}*/
//AfxMessageBox(strCasename);
http://www.mytju.com/classcode/tools/encode_gb2312.asp
//void intToByte(int i,byte *bytes,int size = 4)
//{
// //byte[] bytes = new byte[4];
// memset(bytes,0,sizeof(byte) * size);
// bytes[0] = (byte) (0xff & i);
// bytes[1] = (byte) ((0xff00 & i) >> 8);
// bytes[2] = (byte) ((0xff0000 & i) >> 16);
// bytes[3] = (byte) ((0xff000000 & i) >> 24);
// return ;
//}
1 /**
2 * int转byte[]
3 * 该方法将一个int类型的数据转换为byte[]形式,因为int为32bit,而byte为8bit所以在进行类型转换时,知会获取低8位,
4 * 丢弃高24位。通过位移的方式,将32bit的数据转换成4个8bit的数据。注意 &0xff,在这当中,&0xff简单理解为一把剪刀,
5 * 将想要获取的8位数据截取出来。
6 * @param i 一个int数字
7 * @return byte[]
8 */
9 public static byte[] int2ByteArray(int i){
10 byte[] result=new byte[4];
11 result[0]=(byte)((i >> 24)& 0xFF);
12 result[1]=(byte)((i >> 16)& 0xFF);
13 result[2]=(byte)((i >> 8)& 0xFF);
14 result[3]=(byte)(i & 0xFF);
15 return result;
16 }
17 /**
18 * byte[]转int
19 * 利用int2ByteArray方法,将一个int转为byte[],但在解析时,需要将数据还原。同样使用移位的方式,将适当的位数进行还原,
20 * 0xFF为16进制的数据,所以在其后每加上一位,就相当于二进制加上4位。同时,使用|=号拼接数据,将其还原成最终的int数据
21 * @param bytes byte类型数组
22 * @return int数字
23 */
24 public static int bytes2Int(byte[] bytes){
25 int num=bytes[3] & 0xFF;
26 num |=((bytes[2] <<8)& 0xFF00);
27 num |=((bytes[1] <<16)& 0xFF0000);
28 num |=((bytes[0] <<24)& 0xFF0000);
29 return num;
30 }
1.
2.
3. /** 中文字符串转UTF-8与GBK码示例
4. */
5. public static void tttt() throws Exception {
6. String old = "手机银行";
7.
8. //中文转换成UTF-8编码(16进制字符串)
9. StringBuffer utf8Str = new StringBuffer();
10. byte[] utf8Decode = old.getBytes("utf-8");
11. for (byte b : utf8Decode) {
12. utf8Str.append(Integer.toHexString(b & 0xFF));
13. }
14. // utf8Str.toString()=====e6898be69cbae993b6e8a18c
15. // System.out.println("UTF-8字符串e6898be69cbae993b6e8a18c转换成中文值======" + new String(utf8Decode, "utf-8"));//-------手机银行
16.
17.
18. //中文转换成GBK码(16进制字符串)
19. StringBuffer gbkStr = new StringBuffer();
20. byte[] gbkDecode = old.getBytes("gbk");
21. for (byte b : gbkDecode) {
22. gbkStr.append(Integer.toHexString(b & 0xFF));
23. }
24. // gbkStr.toString()=====cad6bbfad2f8d0d0
25. // System.out.println("GBK字符串cad6bbfad2f8d0d0转换成中文值======" + new String(gbkDecode, "gbk"));//----------手机银行
26.
27.
28. //16进制字符串转换成中文
29. byte[] bb = HexString2Bytes(gbkStr.toString());
30. bb = HexString2Bytes("CAD6BBFAD2F8D0D0000000000000000000000000");
31. byte[] cc = hexToByte("CAD6BBFAD2F8D0D0000000000000000000000000", 20);
32. String aa = new String(bb, "gbk");
33. System.out.println("aa====" + aa);
34. }
[html] view plain copy
1. /**
2. * 把16进制字符串转换成字节数组
3. * @param hexstr
4. * @return
5. */
6. public static byte[] HexString2Bytes(String hexstr) {
7. byte[] b = new byte[hexstr.length() / 2];
8. int j = 0;
9. for (int i = 0; i < b.length; i++) {
10. char c0 = hexstr.charAt(j++);
11. char c1 = hexstr.charAt(j++);
12. b[i] = (byte) ((parse(c0) << 4) | parse(c1));
13. }
14. return b;
15. }
16.
17. private static int parse(char c) {
18. if (c >= 'a')
19. return (c - 'a' + 10) & 0x0f;
20. if (c >= 'A')
21. return (c - 'A' + 10) & 0x0f;
22. return (c - '0') & 0x0f;
23. }
[html] view plain copy
1. /**
2. * 把字节数组转换成16进制字符串
3. * @param bArray
4. * @return
5. */
6. public static final String bytesToHexString(byte[] bArray) {
7. StringBuffer sb = new StringBuffer(bArray.length);
8. String sTemp;
9. for (int i = 0; i < bArray.length; i++) {
10. sTemp = Integer.toHexString(0xFF & bArray[i]);
11. if (sTemp.length() < 2)
12. sb.append(0);
13. sb.append(sTemp.toUpperCase());
14. }
15. return sb.toString();
16. }
//
/** 中文字符串转UTF-8与GBK码示例
*/
public static void tttt() throws Exception {
String old = "手机银行";
//中文转换成UTF-8编码(16进制字符串)
StringBuffer utf8Str = new StringBuffer();
byte[] utf8Decode = old.getBytes("utf-8");
for (byte b : utf8Decode) {
utf8Str.append(Integer.toHexString(b & 0xFF));
}
// utf8Str.toString()=====e6898be69cbae993b6e8a18c
// System.out.println("UTF-8字符串e6898be69cbae993b6e8a18c转换成中文值======" + new String(utf8Decode, "utf-8"));//-------手机银行
//中文转换成GBK码(16进制字符串)
StringBuffer gbkStr = new StringBuffer();
byte[] gbkDecode = old.getBytes("gbk");
for (byte b : gbkDecode) {
gbkStr.append(Integer.toHexString(b & 0xFF));
}
// gbkStr.toString()=====cad6bbfad2f8d0d0
// System.out.println("GBK字符串cad6bbfad2f8d0d0转换成中文值======" + new String(gbkDecode, "gbk"));//----------手机银行
//16进制字符串转换成中文
byte[] bb = HexString2Bytes(gbkStr.toString());
bb = HexString2Bytes("CAD6BBFAD2F8D0D0000000000000000000000000");
byte[] cc = hexToByte("CAD6BBFAD2F8D0D0000000000000000000000000", 20);
String aa = new String(bb, "gbk");
System.out.println("aa====" + aa);
}
/**
* 把16进制字符串转换成字节数组
* @param hexstr
* @return
*/
public static byte[] HexString2Bytes(String hexstr) {
byte[] b = new byte[hexstr.length() / 2];
int j = 0;
for (int i = 0; i < b.length; i++) {
char c0 = hexstr.charAt(j++);
char c1 = hexstr.charAt(j++);
b[i] = (byte) ((parse(c0) << 4) | parse(c1));
}
return b;
}
private static int parse(char c) {
if (c >= 'a')
return (c - 'a' + 10) & 0x0f;
if (c >= 'A')
return (c - 'A' + 10) & 0x0f;
return (c - '0') & 0x0f;
}
/**
* 把字节数组转换成16进制字符串
* @param bArray
* @return
*/
public static final String bytesToHexString(byte[] bArray) {
StringBuffer sb = new StringBuffer(bArray.length);
String sTemp;
for (int i = 0; i < bArray.length; i++) {
sTemp = Integer.toHexString(0xFF & bArray[i]);
if (sTemp.length() < 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
}
return sb.toString();
}
function ByteToHex(Src: Byte): String;
var
h, l : Byte;
const
HC : Array [$00..$0F] of char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
begin
h :=Src shr 4;
l :=Src shl 4;
l :=l shr 4;
Result :=HC[h]+HC[l];
end;
function StrToHex(str : String):String; //字符串转换为2位16进制字符串
var
i : Integer;
begin
Result :='';
for i :=1 to Length(str) do
begin
Result :=Result +Right('00'+ByteToHex(Ord(str[i])),2);
end;
end;
//
ShowMessage(StrToHex('林'));
function Right(const src: string; const numChars: Integer): string;
var
m, n: Integer;
begin
n := Length(src);
if numChars > n then
m := 1
else begin
m := n - numChars + 1;
n := numChars;
end;
Result := Copy(src, m, n);
end;
StrToHex('abc林aad1166aa');