Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
liveAssistant_web_demo
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
继续操作前请注册或者登录。
Authored by
胡斌
2017-05-02 19:19:15 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
41255e193c9735960721455b7281b07657aa1e28
41255e19
1 parent
a0bb830b
support IE11: using utf16to8 and utf8to16 to replace TextEncode and TextDecoder
隐藏空白字符变更
内嵌
并排对比
正在显示
2 个修改的文件
包含
98 行增加
和
14 行删除
demo.html
scripts/utf.js
demo.html
查看文件 @
41255e1
...
...
@@ -132,6 +132,7 @@ a:active {
<!-- functionality -->
<script
type=
"text/javascript"
src=
"scripts/swfobject.js"
></script>
<script
type=
"text/javascript"
src=
"scripts/utf.js"
></script>
<script
language=
"javascript"
>
var
queryParameters
=
new
Array
();
...
...
@@ -144,6 +145,7 @@ a:active {
var
initload
=
true
;
var
player
;
function
testWebSocket
()
{
websocket
=
new
WebSocket
(
wsUri
);
...
...
@@ -193,7 +195,8 @@ a:active {
offset
+=
4
;
var
cam_name
=
new
Uint8Array
(
evt
.
target
.
result
,
offset
,
cam_name_len
-
1
);
offset
+=
cam_name_len
;
var
data_sting
=
new
TextDecoder
(
"utf-8"
).
decode
(
cam_name
);
//var data_sting = new TextDecoder("utf-8").decode(cam_name);
var
data_sting
=
utf8to16
(
cam_name
);
writeToScreen
(
'<span style="color: blue;">Camera: '
+
i
+
" "
+
data_sting
+
' </span>'
);
var
op
=
document
.
createElement
(
"option"
);
...
...
@@ -214,7 +217,8 @@ a:active {
offset
+=
4
;
var
mic_name
=
new
Uint8Array
(
evt
.
target
.
result
,
offset
,
mic_name_len
-
1
);
offset
+=
mic_name_len
;
var
data_sting
=
new
TextDecoder
(
"utf-8"
).
decode
(
mic_name
);
//var data_sting = new TextDecoder("utf-8").decode(mic_name);
var
data_sting
=
utf8to16
(
mic_name
);
writeToScreen
(
'<span style="color: blue;">MIC: '
+
i
+
" "
+
data_sting
+
' </span>'
);
var
op
=
document
.
createElement
(
"option"
);
op
.
value
=
i
;
...
...
@@ -230,14 +234,16 @@ a:active {
}
else
if
(
95
==
result
){
//get_videoparam success
var
data
=
new
Uint8Array
(
evt
.
target
.
result
,
8
,
evt
.
target
.
result
.
byteLength
-
8
-
1
);
var
data_sting
=
new
TextDecoder
(
"utf-8"
).
decode
(
data
);
//var data_sting = new TextDecoder("utf-8").decode(data);
var
data_sting
=
utf8to16
(
data
);
var
td
=
document
.
getElementById
(
'videoparam'
);
td
.
value
=
data_sting
;
writeToScreen
(
'<span style="color: blue;">get_videoparam result: '
+
data_sting
+
' </span>'
);
}
else
{
var
data
=
new
Uint8Array
(
evt
.
target
.
result
,
8
,
evt
.
target
.
result
.
byteLength
-
8
);
var
data_sting
=
new
TextDecoder
(
"utf-8"
).
decode
(
data
);
//var data_sting = new TextDecoder("utf-8").decode(data);
var
data_sting
=
utf8to16
(
data
);
writeToScreen
(
'<span style="color: blue;">RESPONSE: '
+
data_sting
+
' </span>'
);
}
}
...
...
@@ -292,7 +298,8 @@ a:active {
else
if
(
obj
.
id
==
"ss_start"
){
cmd
.
type
=
6
;
var
param
=
document
.
getElementById
(
"ss_start_input"
);
cmd
.
data
=
new
TextEncoder
(
"utf-8"
).
encode
(
param
.
value
);
//cmd.data = new TextEncoder("utf-8").encode(param.value);
cmd
.
data
=
utf16to8
(
param
.
value
);
cmd
.
data_len
=
cmd
.
data
.
length
;
}
else
if
(
obj
.
id
==
"ss_stop"
){
...
...
@@ -322,7 +329,8 @@ a:active {
var
window_name_buffer
=
new
Uint8Array
(
buffer
,
24
,
256
);
var
window_name
=
document
.
getElementById
(
"ds_start_window_name"
).
value
;
var
window_name_array
=
new
TextEncoder
(
"utf-8"
).
encode
(
window_name
);
//var window_name_array = new TextEncoder("utf-8").encode(window_name);
var
window_name_array
=
utf16to8
(
window_name
);
for
(
var
i
=
0
;
i
<
window_name_array
.
length
;
i
++
){
window_name_buffer
[
i
]
=
window_name_array
[
i
];
}
...
...
@@ -350,7 +358,8 @@ a:active {
var
urlname_len
=
new
Uint32Array
(
buffer
,
4
,
1
);
urlname_len
[
0
]
=
0
;
var
mic_name
=
new
Uint8Array
(
buffer
,
8
,
256
);
var
mic_name_array
=
new
TextEncoder
(
"utf-8"
).
encode
(
sel_mic_name
);
//var mic_name_array = new TextEncoder("utf-8").encode(sel_mic_name);
var
mic_name_array
=
utf16to8
(
sel_mic_name
);
for
(
var
i
=
0
;
i
<
mic_name_array
.
length
;
i
++
){
mic_name
[
i
]
=
mic_name_array
[
i
];
}
...
...
@@ -377,7 +386,8 @@ a:active {
var
urlname_len
=
new
Uint32Array
(
buffer
,
4
,
1
);
urlname_len
[
0
]
=
0
;
var
cam_name
=
new
Uint8Array
(
buffer
,
8
,
256
);
var
cam_name_array
=
new
TextEncoder
(
"utf-8"
).
encode
(
sel_cam_name
);
//var cam_name_array = new TextEncoder("utf-8").encode(sel_cam_name);
var
cam_name_array
=
utf16to8
(
sel_cam_name
);
for
(
var
i
=
0
;
i
<
cam_name_array
.
length
;
i
++
){
cam_name
[
i
]
=
cam_name_array
[
i
];
}
...
...
@@ -392,38 +402,41 @@ a:active {
else
if
(
obj
.
id
==
"set_videoparam"
){
cmd
.
type
=
46
;
var
param
=
document
.
getElementById
(
"videoparam"
);
cmd
.
data
=
new
TextEncoder
(
"utf-8"
).
encode
(
param
.
value
);
//cmd.data = new TextEncoder("utf-8").encode(param.value);
cmd
.
data
=
utf16to8
(
param
.
value
);
cmd
.
data_len
=
cmd
.
data
.
length
;
}
else
if
(
obj
.
id
==
"get_videoparam"
){
cmd
.
type
=
47
;
var
sourceSel
=
document
.
getElementById
(
"sources"
);
var
index
=
sourceSel
.
selectedIndex
;
cmd
.
data
=
new
TextEncoder
(
"utf-8"
).
encode
(
sourceSel
.
options
[
index
].
text
);
//cmd.data = new TextEncoder("utf-8").encode(sourceSel.options[index].text);
cmd
.
data
=
utf16to8
(
sourceSel
.
options
[
index
].
text
);
cmd
.
data_len
=
cmd
.
data
.
length
;
}
else
if
(
obj
.
id
==
"start_record"
){
cmd
.
type
=
48
;
var
param
=
document
.
getElementById
(
"start_record_input"
);
cmd
.
data
=
new
TextEncoder
(
"utf-8"
).
encode
(
param
.
value
);
//cmd.data = new TextEncoder("utf-8").encode(param.value);
cmd
.
data
=
utf16to8
(
param
.
value
);
cmd
.
data_len
=
cmd
.
data
.
length
;
}
else
if
(
obj
.
id
==
"stop_record"
){
cmd
.
type
=
49
;
var
param
=
document
.
getElementById
(
"start_record_input"
);
cmd
.
data
=
new
TextEncoder
(
"utf-8"
).
encode
(
param
.
value
);
cmd
.
data
=
utf16to8
(
param
.
value
);
cmd
.
data_len
=
cmd
.
data
.
length
;
}
else
if
(
obj
.
id
==
"start_push"
){
cmd
.
type
=
50
;
var
param
=
document
.
getElementById
(
"start_push_input"
);
cmd
.
data
=
new
TextEncoder
(
"utf-8"
).
encode
(
param
.
value
);
cmd
.
data
=
utf16to8
(
param
.
value
);
cmd
.
data_len
=
cmd
.
data
.
length
;
}
else
if
(
obj
.
id
==
"stop_push"
){
cmd
.
type
=
51
;
var
param
=
document
.
getElementById
(
"start_push_input"
);
cmd
.
data
=
new
TextEncoder
(
"utf-8"
).
encode
(
param
.
value
);
cmd
.
data
=
utf16to8
(
param
.
value
);
cmd
.
data_len
=
cmd
.
data
.
length
;
}
...
...
scripts/utf.js
0 → 100644
查看文件 @
41255e1
/* utf.js - UTF-8 <=> UTF-16 convertion
*
* Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>
* Version: 1.0
* LastModified: Dec 25 1999
* This library is free. You can redistribute it and/or modify it.
*/
/* hubin modified, to convert from Utf16String to Uint8Array and convert
Uint8Array to Utf16String
*/
/*
* Interfaces:
* utf8 = utf16to8(utf16);
* utf16 = utf16to8(utf8);
*/
function
utf16to8
(
str
)
{
var
out
,
i
,
len
,
c
;
len
=
str
.
length
;
out
=
new
Uint8Array
(
len
*
3
);
var
utf8len
=
0
;
for
(
i
=
0
;
i
<
len
;
i
++
)
{
c
=
str
.
charCodeAt
(
i
);
if
((
c
>=
0x0001
)
&&
(
c
<=
0x007F
))
{
out
[
utf8len
++
]
=
c
;
}
else
if
(
c
>
0x07FF
)
{
out
[
utf8len
++
]
=
(
0xE0
|
((
c
>>
12
)
&
0x0F
));
out
[
utf8len
++
]
=
(
0x80
|
((
c
>>
6
)
&
0x3F
));
out
[
utf8len
++
]
=
(
0x80
|
((
c
>>
0
)
&
0x3F
));
}
else
{
out
[
utf8len
++
]
=
(
0xC0
|
((
c
>>
6
)
&
0x1F
));
out
[
utf8len
++
]
=
(
0x80
|
((
c
>>
0
)
&
0x3F
));
}
}
return
new
Uint8Array
(
out
.
buffer
,
0
,
utf8len
);
}
function
utf8to16
(
str
)
{
var
out
,
i
,
len
,
c
;
var
char2
,
char3
;
out
=
""
;
len
=
str
.
length
;
i
=
0
;
while
(
i
<
len
)
{
c
=
str
[
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
=
str
[
i
++
];
out
+=
String
.
fromCharCode
(((
c
&
0x1F
)
<<
6
)
|
(
char2
&
0x3F
));
break
;
case
14
:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2
=
str
[
i
++
];
char3
=
str
[
i
++
];
out
+=
String
.
fromCharCode
(((
c
&
0x0F
)
<<
12
)
|
((
char2
&
0x3F
)
<<
6
)
|
((
char3
&
0x3F
)
<<
0
));
break
;
}
}
return
out
;
}
\ No newline at end of file
...
...
请
注册
或
登录
后发表评论