Skip to content

Commit 9a7d886

Browse files
author
lizl6
committed
完成中文/utf-8编码互转
1 parent 4f1991f commit 9a7d886

File tree

6 files changed

+68
-12
lines changed

6 files changed

+68
-12
lines changed

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
- [x] 中文/ASCii互转
1010

11-
- [ ] 中文/UTF-8互转
11+
- [x] 中文/UTF-8互转
1212

1313
- [ ] AES/DES加解密
1414

@@ -50,6 +50,14 @@ npm run build-dist:win
5050

5151
# 截图
5252

53+
## 中文/ASCii编码
54+
5355
![image-20220913152703258](https://imgbd.r-xnoro.com//image-20220913152703258.png)
5456

57+
## 中文/UTF-8编码
58+
59+
![image-20220913162817293](https://imgbd.r-xnoro.com//image-20220913162817293.png)
60+
61+
## 随机数/密码生成器
62+
5563
![image-20220913152551500](https://imgbd.r-xnoro.com//image-20220913152551500.png)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "coderbox",
3-
"version": "1.0.0",
3+
"version": "1.0.5",
44
"description": "基于electron的跨平台的程序员小工具集",
55
"main": "main.js",
66
"scripts": {

src/component/ascii.html

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
</div>
77
<div class="row pt-2">
88
<div class="col-1 text-end">中文:</div>
9-
<div class="col"><textarea class="form-control" style="resize:none;" v-model="strNative" cols="30"
10-
rows="10"></textarea></div>
9+
<div class="col"><textarea class="form-control" style="resize:none;" v-model="strNative" cols="30" rows="10"></textarea></div>
1110
</div>
1211
<div class="row mt-3">
1312
<div class="col-1"></div>
@@ -18,8 +17,7 @@
1817
</div>
1918
<div class="row mt-3">
2019
<div class="col-1 text-end">ASCii:</div>
21-
<div class="col"><textarea class="form-control" style="resize:none;" v-model="strAscii" cols="30"
22-
rows="10">{{strAscii}}</textarea></div>
20+
<div class="col"><textarea class="form-control" style="resize:none;" v-model="strAscii" cols="30" rows="10"></textarea></div>
2321
</div>
2422
</div>
2523
<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
@@ -85,9 +83,7 @@
8583
code <<= 4;
8684
code += cc;
8785
}
88-
8986
if (code < 0xff) return str;
90-
9187
return String.fromCharCode(code);
9288
}
9389

src/component/utf8.html

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<link rel="stylesheet" href="../index.css">
2+
<link rel="stylesheet" href="../../node_modules/bootstrap/dist/css/bootstrap.min.css">
3+
<div class="container-fluid" id="app">
4+
<div class="card bg-light text-gray">
5+
<div class="card-head text-muted">中文/UTF-8编码互转</div>
6+
</div>
7+
<div class="row pt-2">
8+
<div class="col-1 text-end">中文:</div>
9+
<div class="col"><textarea class="form-control" style="resize:none;" v-model="strNative" cols="30" rows="10"></textarea></div>
10+
</div>
11+
<div class="row mt-3">
12+
<div class="col-1"></div>
13+
<div class="col">
14+
<button type="button" class="btn btn-primary" @click="n2u">中文转UTF-8编码⇩</button>
15+
<button type="button" class="btn btn-primary" style="margin-left:15px;" @click="u2n">UTF-8编码转中文⇧</button>
16+
</div>
17+
</div>
18+
<div class="row mt-3">
19+
<div class="col-1 text-end text-nowrap">UTF-8编码:</div>
20+
<div class="col"><textarea class="form-control" style="resize:none;" v-model="strUTF8" cols="30" rows="10"></textarea></div>
21+
</div>
22+
</div>
23+
<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
24+
<script src="../../node_modules/vue/dist/vue.global.prod.js"></script>
25+
<script>
26+
const app = {
27+
data() {
28+
return {
29+
strNative: '',
30+
strUTF8: ''
31+
}
32+
},
33+
methods: {
34+
n2u() {
35+
if(this.strNative == '') return;
36+
this.strUTF8 = this.strNative.replace(/[^\u0000-\u00FF]/g, ($0) => {
37+
return escape($0).replace(/(%u)(\w{4})/gi, "&#x$2;");
38+
});
39+
},
40+
u2n() {
41+
if(this.strUTF8 == '') return;
42+
this.strNative = unescape(this.strUTF8.replace(/&#x/g, '%u').replace(/;/g, ''));
43+
}
44+
}
45+
}
46+
Vue.createApp(app).mount('#app');
47+
</script>

src/index.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@
1414
<div class="collapse navbar-collapse">
1515
<ul class="navbar-nav">
1616
<li class="nav-item">
17-
<a href="#" @click="to('welcome')" class="nav-link">首页</a>
17+
<a href="#" class="nav-link" @click="to('welcome')">首页</a>
1818
</li>
1919
<li class="nav-item dropdown">
2020
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">编码/加密</a>
2121
<div class="dropdown-menu">
22-
<a href="#" @click="to('ascii')" class="dropdown-item">中文/ASCii互转</a>
23-
<a href="#" class="dropdown-item">中文/UTF-8互转</a>
22+
<a href="#" class="dropdown-item" @click="to('ascii')">中文/ASCii互转</a>
23+
<a href="#" class="dropdown-item" @click="to('utf8')">中文/UTF-8互转</a>
2424
<a href="#" class="dropdown-item">Base64编码/解码</a>
2525
<a href="#" class="dropdown-item">MD5、SHA加密</a>
2626
<a href="#" class="dropdown-item">AES/DES加解密</a>
2727
</div>
2828
</li>
2929
<li class="nav-item">
30-
<a href="#" @click="to('pwd')" class="nav-link">随机数/密码生成器</a>
30+
<a href="#" class="nav-link" @click="to('pwd')">随机数/密码生成器</a>
3131
</li>
3232
</ul>
3333
</div>

src/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ const app = {
1616
name: 'ascii',
1717
path: './component/ascii.html',
1818
state: 0
19+
},
20+
{
21+
name: 'utf8',
22+
path: './component/utf8.html',
23+
state: 0
1924
}
2025
],
2126
dataPwd: {

0 commit comments

Comments
 (0)