1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
|
#include "hspext.as"
*top
cls
moji="";入力文字
input moji,500,20
button "変換",*henkan
stop
*henkan
rr=strlen(moji)
cut=0
kotae5="";変換された文字列が入る
basyo=0
;処理開始*********************************************************
repeat
;unicodeの2進数へ変換 *******************************************
flg=0;半角=1:全角=0
x=strmid (moji,basyo,1)
c=peek(x)
if ((c>31)AND(c<128))OR((c>159)AND(c<224))OR(c==9):flg=1
if flg==1{
q=strmid(moji,basyo,1)
cc=int(q)
if (cc>=0)AND(cc<=9){
kotae5=kotae5+q
}else{
val = peek(q,0)
in16=strf("%x",val)
kotae5=kotae5+in16
}
basyo++
}else{
kotae5=kotae5+"%"
c=strmid(moji,basyo,2)
cnvstow data,c ;unicodeへ変換
in16=strf("%x",data)
;mes "in16 "+in16
len=strlen(in16)
kotae=""
repeat len
r=strmid(in16,cnt,1)
if r=="0":data2="0000"
if r=="1":data2="0001"
if r=="2":data2="0010"
if r=="3":data2="0011"
if r=="4":data2="0100"
if r=="5":data2="0101"
if r=="6":data2="0110"
if r=="7":data2="0111"
if r=="8":data2="1000"
if r=="9":data2="1001"
if r=="a":data2="1010"
if r=="b":data2="1011"
if r=="c":data2="1100"
if r=="d":data2="1101"
if r=="e":data2="1110"
if r=="f":data2="1111"
kotae=kotae+data2
loop
;mes "kotae "+kotae
;文字列反転 *****************************************************
len=strlen(kotae)
kotae2=""
repeat len
y=strmid (kotae,cnt,1)
kotae2=y+kotae2
loop
;mes "kotae2 "+kotae2
;UTF-8へ変換の為 文字追加処理 ***********************************
x=0
kotae3=""
len=strlen(kotae2)
p=len/6
pp=len\6
repeat p
u=strmid (kotae2,x,6)
o=u+"01"
kotae3=kotae3+o
x=x+6
loop
u=strmid (kotae2,x,pp)
;mes u
o=u+"0111"
kotae3=kotae3+o
;mes "kotae3 "+kotae3
;文字列反転 *****************************************************
len=strlen(kotae3)
kotae4=""
repeat len
y=strmid (kotae3,cnt,1)
kotae4=y+kotae4
loop
;mes "kotae4 "+kotae4
;2進数から16進数へ変換 *******************************************
len=strlen (kotae4)
len=len/4
x=0
cut=0
repeat len
o=strmid (kotae4,x,4)
x=x+4
if o=="0000":s="0"
if o=="0001":s="1"
if o=="0010":s="2"
if o=="0011":s="3"
if o=="0100":s="4"
if o=="0101":s="5"
if o=="0110":s="6"
if o=="0111":s="7"
if o=="1000":s="8"
if o=="1001":s="9"
if o=="1010":s="a"
if o=="1011":s="b"
if o=="1100":s="c"
if o=="1101":s="d"
if o=="1110":s="e"
if o=="1111":s="f"
;16進数2文字置きに % 追加処理 *******************************************
kotae5=kotae5+s
if ((cut\2)==1)AND(cut>=1)AND((cut+1)<len):kotae5=kotae5+"%"
cut++
loop
basyo=basyo+2
}
if rr<=basyo:break
loop
;結果表示処理 **********************************************************
mes "入力文字="+moji
input kotae5,500,20
button "コピー",*cp
button "クリア",*top
stop
*cp
clipset kotae5
stop
|