PageSourceSearch

https://www.idaten.ne.jp/portal/common/js/checkConvertToSJIS.js

js idaten.ne.jp collected 2026-10-02 06:58:05 UTC 1,365 bytes, 59 lines download raw bytes

1function checkEncodeToSJIS(str) {
2    // ƒTƒƒQ[ƒVƒ‡ƒ“ƒyƒA•¶Žš‚Ì‘¶Ýƒ`ƒFƒbƒN
3    if (isSurrogates(str)) {
4        return true;
5    }
6    // Shift_JIS‚ɕϊ·‚Å‚«‚È‚¢•¶Žš‚Ì‘¶Ýƒ`ƒFƒbƒN
7    if (isNotSJIS(str)) {
8        return true;
9    }
10    return false;
11}
12
13// ƒTƒƒQ[ƒVƒ‡ƒ“ƒyƒA•¶Žš‚Ì‘¶Ýƒ`ƒFƒbƒN
14function isSurrogates(str) {
15    var length = str.length;
16    for (var i=0; i<length; i++) {
17        // 1•¶Žš‚¸‚Šm”F‚·‚éB
18        var char = str.charAt(i);
19        if (checkSurrogates(char)) {
20            return true;
21        }
22    }
23    return false;
24}
25
26function checkSurrogates(char) {
27    // ƒTƒƒQ[ƒVƒ‡ƒ“•¶Žš‚̐³‹K•\Œ»‚Ɉê’v‚·‚é‚©‚ðƒ`ƒFƒbƒN‚·‚éB
28    return char.match(new RegExp("^[\uD800-\uDBFF\uDC00-\uDFFF]+$"));
29}
30
31//Shift_JIS‚ɕϊ·‚Å‚«‚È‚¢•¶Žš‚Ì‘¶Ýƒ`ƒFƒbƒN
32function isNotSJIS(str) {
33    var length = str.length;
34    for (var i=0; i<length; i++) {
35        // 1•¶Žš‚¸‚Šm”F‚·‚éB
36        var char = str.charAt(i);
37        if (checkNotSjis(char)) {
38            return true;
39        }
40    }
41    return false;
42}
43
44function checkNotSjis(char) {
45    if (char == "E") {
46        return false;
47    }
48    // ecl.js‚ð—˜—p‚µAƒGƒXƒP[ƒv‚·‚éB
49    var result = EscapeSJIS(char);
50    // ƒGƒXƒP[ƒv‚µ‚½•¶Žš‚𕜌³‚·‚éB
51    result = UnescapeSJIS(result);
52
53    // •ÏŠ·‚ÉŽ¸”s‚µ‚½ê‡AuEv‚ƂȂéB
54    if (result == "E") {
55        return true;
56    }
57
58    return false;
59}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.