一、将整数转成字符:

String.fromCharCode(17496>>8,17496&0xFF,19504>>8,19504&0xFF,12848>>8,12848&0xFF,13360>>8,13360&0xFF,17969>>8,17969&0xFF,12592>>8,12592&0xFF,12337>>8,12337&0xFF,14592>>8,14592&0xFF)

//结果:DXL02040F110019

二、将json传过来的数据, unicode 编码的字符转成普通字符:

function ascii2native(asciicode) {
asciicode = asciicode.split("\\u");
var nativeValue = asciicode[0];
for (var i = 1; i < asciicode.length; i++) {
var code = asciicode[i];
nativeValue += String.fromCharCode(parseInt("0x" + code.substring(0, 4)));
if (code.length > 4) {
nativeValue += code.substring(4, code.length);
}
}
return nativeValue;
}

//调用

ascii2native("D\u0000\u0000\u0000X\u0000\u0000\u0000L\u0000\u0000\u00000\u0000\u0000\u00002\u0000\u0000\u00000\u0000\u0000\u00004\u0000\u0000\u00000\u0000\u0000\u0000F\u0000\u0000\u00001\u0000\u0000\u00001\u0000\u0000\u00000\u0000\u0000\u00000\u0000\u0000\u00001\u0000\u0000\u00009\u0000\u0000\u0000\u0000\u0000\u0000\u0000")

//结果:DXL02040F110019

下面是摘抄的:

将十进制数字 97 (ASCII 字符 a)存入文件,然后读出来。

admin  2012-10-23
 2
主要考察97在内存中,和文件中的字节序问题。
还有 int char 的区别。
用C语言实现:
vim 1.c
?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main() {
        FILE *fp;
        int a[1] = {97}; // 这个数组只存放一个数:97
        fp = fopen("./1.data", "wb");
        fwrite(a, 4, 1, fp);
        fclose(fp);
        return 0;
}

gcc 1.c

hexdump -C a.out
[root@localhost ~]# hexdump -C 1.data
00000000 61 00 00 00 |a...|
00000004

可以看到是逆序存放的,0x61 转为十进制便是 97, 也就是 ascii 字符 a。

然后我们来从文件中读取这个值:
vim 2.c
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
int main() {
        FILE *fp;
        int a[4] = {97, 98, 99, 100};
        char c[16];
        fp = fopen("./1.data", "rb");
        fread(c, 16, 1, fp);
        fclose(fp);
        int i;
        for(i=0; i<4; i++) {
                printf("%02x ", c[i]);
        }
        printf("\r\n------------\r\n");
        for(i=0; i<1; i++) {
                printf("%d", a[i]);
        }
        return 0;
}<br>

gcc 2.c && ./a.out

输出:

[root@localhost ~]# ./a.out 
61 00 00 00 
------------
97

总结一下:
1. 文件忠实的保存了内存中的数据,怎么读就怎么写即可。
2. intel x86 litter-endian int 内存中的字节序的为逆序(char 为正序)。网络字节序,文件字节序都为正序。
用PHP实现将 97 存入文件:
?
1
2
3
4
<?php
$s = pack("L*", 97);
file_put_contents('./1.data', $s);
?>

如果一次要存放一堆怎么办?
pack("L*", array(97, 98, 99, 100)); // 这样是错误的!结果是 array() 转为的数值 1
eval() 不利于 cache ,最好别用。
实现了一个支持数组的:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function int_to_string($arr) {
        $s = '';
        foreach($arr as $v) {
                $a = sprintf('%08x', $v);
                $b = '';
                // int 在内存中为逆序存放
                $b .= chr(base_convert(substr($a, 6, 2), 16, 10));
                $b .= chr(base_convert(substr($a, 4, 2), 16, 10));
                $b .= chr(base_convert(substr($a, 2, 2), 16, 10));
                $b .= chr(base_convert(substr($a, 0, 2), 16, 10));
                //echo $a;
                $s .= $b;
        }
        return $s;
}

js中将 整数转成字符,,将unicode 编码后的字符还原出来的方法。相关推荐

  1. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为八进制字符串(char [])...

    c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into octal string (char[]) in ...

  2. c语言中将整数转换成字符串_在C语言中将ASCII字符串(char [])转换为十六进制字符串(char [])...

    c语言中将整数转换成字符串 Given an ASCII string (char[]) and we have to convert it into Hexadecimal string (char ...

  3. js中将字符串转换成json的三种方式

    ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了,包括全局的JSON对象和Date的toJSON方法. 1,eval方式解析,恐 ...

  4. 使用charCodeAt()和charAt()方法,根据Unicode 编码,转换字符

    1.charCodeAt() 方法 charCodeAt() 方法可返回指定位置的字符的 Unicode 编码.这个返回值是 0 - 65535 之间的整数. 方法 charCodeAt() 与 ch ...

  5. 本表收录的字符的Unicode编码范围为19968至40869

    本表收录的字符的Unicode编码范围为19968至40869, 由XDesigner 整理,此处引用,为了js的通讯录效果,请大家粘贴复制即可 //函数使用,本表收录的字符的Unicode编码范围为 ...

  6. 查阅中文字符的Unicode编码

    jshell> Integer.toHexString('中')//返回一个中文字符的Unicode编码 $28 ==> "4e2d" jshell> '\u4e ...

  7. php u6d4b,PHP解码unicode编码的中文字符代码分享

    晚上在抓取某网站数据,结果在数据包中发现了这么一串编码的数据:"--/u65b0/u6d6a/u5fae/u535a--", 这其实是中文被unicode编码后了的数据,我现在就是 ...

  8. php输出字符unicode码,PHP解码unicode编码的中文字符代码分享

    问题背景: 晚上在抓取某网站数据,结果在数据包中发现了这么一串编码的数据:"......\u65b0\u6d6a\u5fae\u535a......", 这其实是中文被unicod ...

  9. Java学习之编写实现简单加密的程序,要求从键盘输入一个字符,输出加密后的字符。

    案例介绍: 编写实现简单加密的程序,要求从键盘输入一个字符,输出加密后的字符. 加密规则:输入A,输出Z;输入B,输出Y:输入a,输出z;输入b,输出y. 案例代码: import java.io.* ...

最新文章

  1. Python-EEG工具库MNE-Python详细安装与使用
  2. 朴素贝叶斯(NaiveBayes)算法总结
  3. 【赠书】如何构建企业级的推荐系统?这本书值得一看
  4. JavaScript变量作用域和内存问题(js高级程序设计总结)
  5. Java制作VCARD
  6. 更改oracle背景,Oracle 11gR2修改用户后导致系统HANG住
  7. Oracle 已命名的异常
  8. linux ctrl c 子进程,ctrl c会向Linux中的父进程和子进程发送SIGINT信号吗?
  9. LINUX使用OpenSSL进行签名
  10. 边缘检测之非极大值抑制原理
  11. 2021-09-10 QTdesigner 介绍入门 布局
  12. 回顾经典: AlexNet, CaffeNet — Winner of ILSVRC 2012
  13. 【CAD】机械类制图实用功能总结
  14. 那些年我们追过的网络小说
  15. 可任意改变背景颜色的万年历
  16. Ubuntu下制作.deb安装包之dkpg
  17. 探花交友10-数据统计与内容审核
  18. 美剧24中的SAP软件
  19. 分享:从华为转正到离职
  20. Ubuntu22.04安装riscv64-toolchain和QEMU

热门文章

  1. 鞋企立足信息化建设 力争突破发展瓶颈
  2. 迷你信使(MM)的软件设计界面
  3. 说说如何使用 vue-router 实现页面跳转
  4. 读书笔记之《实战Java虚拟机》(2):认识Java虚拟机的基本结构
  5. Nginx与websocket或socketio的负载均衡
  6. 鸡年除夕全天微信红包收发量达142亿个增长75.7%
  7. 使用云开发以及vant组件库搭建的一个收账小程序
  8. 刷题百道却跪在白板面试?白板面试FAQ为你答疑解惑
  9. RDS用户如何优化报警规则
  10. 如何建设一个适配“百度轻舟计划”的移动站