Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ChenBbMing
NodeJS_280414
提交
ff70d3a1
N
NodeJS_280414
项目概览
ChenBbMing
/
NodeJS_280414
与 Fork 源项目一致
Fork自
inscode / NodeJS
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
NodeJS_280414
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
You need to sign in or sign up before continuing.
提交
ff70d3a1
编写于
5月 08, 2023
作者:
6
6448dfb631ba9538b4877fd6
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Mon May 8 03:02:00 UTC 2023 inscode
上级
ca207a2f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
101 addition
and
1 deletion
+101
-1
index.js
index.js
+101
-1
未找到文件。
index.js
浏览文件 @
ff70d3a1
console
.
log
(
"
欢迎来到 InsCode
"
);
console
.
log
(
"
欢迎来到 InsCode
"
);
\ No newline at end of file
enc
=
[
"
o
"
,
"
ο
"
,
"
о
"
,
"
ᴏ
"
]
console
.
log
(
encodeURI
(
'
o-ο-о-ᴏ
'
))
var
dec
=
{
'
o
'
:
0
,
'
ο
'
:
1
,
'
о
'
:
2
,
'
ᴏ
'
:
3
};
var
url
=
"
https://www.baidu.com
"
// 获取utf8数组
// let unversioned = toUTF8Array(url)
// // 转换为base 4字符串
// // padstart非常重要!否则会丢失前导0
// .map(n => n.toString(4).padStart(4, "0"))
// // 转换为字符数组
// .join("").split("")
// // 映射到o的不同形式
// .map(x => enc[parseInt(x)])
// // 连接成单个字符串
// .join("")
let
unversioned
=
toUTF8Array
(
url
)
// 转换为base 4字符串
let
b4str
=
unversioned
.
map
(
n
=>
n
.
toString
(
4
).
padStart
(
4
,
"
0
"
))
console
.
log
(
"
转换为base 4字符串:
\n
"
,
b4str
)
// 转换为字符数组
let
str
=
b4str
.
join
(
""
).
split
(
""
)
console
.
log
(
"
转换为字符数组:
\n
"
,
str
)
// 映射到o的不同形式
let
ooo
=
str
.
map
(
x
=>
enc
[
parseInt
(
x
)]).
join
(
""
)
console
.
log
(
"
映射到o的不同形式:
\n
"
,
ooo
)
function
getUrl
(
str
)
{
// 获取url的base 4字符串表示
let
b4str
=
str
.
split
(
""
).
map
(
x
=>
dec
[
x
]).
join
(
""
)
let
utf8arr
=
[]
// 每次解析4个字符
// 记住添加前导0的填充
for
(
let
i
=
0
;
i
<
b4str
.
length
;
i
+=
4
)
utf8arr
.
push
(
parseInt
(
b4str
.
substring
(
i
,
i
+
4
),
4
))
// 返回解码后的字符串
return
Utf8ArrayToStr
(
utf8arr
)
}
function
toUTF8Array
(
str
)
{
var
utf8
=
[];
for
(
var
i
=
0
;
i
<
str
.
length
;
i
++
)
{
var
charcode
=
str
.
charCodeAt
(
i
);
if
(
charcode
<
0x80
)
utf8
.
push
(
charcode
);
else
if
(
charcode
<
0x800
)
{
utf8
.
push
(
0xc0
|
(
charcode
>>
6
),
0x80
|
(
charcode
&
0x3f
));
}
else
if
(
charcode
<
0xd800
||
charcode
>=
0xe000
)
{
utf8
.
push
(
0xe0
|
(
charcode
>>
12
),
0x80
|
((
charcode
>>
6
)
&
0x3f
),
0x80
|
(
charcode
&
0x3f
));
}
else
{
i
++
;
charcode
=
((
charcode
&
0x3ff
)
<<
10
)
|
(
str
.
charCodeAt
(
i
)
&
0x3ff
)
utf8
.
push
(
0xf0
|
(
charcode
>>
18
),
0x80
|
((
charcode
>>
12
)
&
0x3f
),
0x80
|
((
charcode
>>
6
)
&
0x3f
),
0x80
|
(
charcode
&
0x3f
));
}
}
console
.
log
(
utf8
,
'
utf8
'
);
return
utf8
;
}
function
Utf8ArrayToStr
(
array
)
{
var
out
,
i
,
len
,
c
;
var
char2
,
char3
;
out
=
""
;
len
=
array
.
length
;
i
=
0
;
while
(
i
<
len
)
{
c
=
array
[
i
++
];
switch
(
c
>>
4
)
{
case
0
:
case
1
:
case
2
:
case
3
:
case
4
:
case
5
:
case
6
:
case
7
:
// 0xxxxxxx
out
+=
String
.
fromCharCode
(
c
);
break
;
case
12
:
case
13
:
// 110x xxxx 10xx xxxx
char2
=
array
[
i
++
];
out
+=
String
.
fromCharCode
(((
c
&
0x1F
)
<<
6
)
|
(
char2
&
0x3F
));
break
;
case
14
:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2
=
array
[
i
++
];
char3
=
array
[
i
++
];
out
+=
String
.
fromCharCode
(((
c
&
0x0F
)
<<
12
)
|
((
char2
&
0x3F
)
<<
6
)
|
((
char3
&
0x3F
)
<<
0
));
break
;
}
}
return
out
;
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录