|
本館粉絲專頁 |
|
|
使用者:Digipunk/PAGE/UNICODE:修訂版本之間的差異
台灣棒球維基館
(新頁面: <INCLUDEONLY><SPAN CLASS="DGPK-unicode">{{{1|}}}</SPAN></INCLUDEONLY><NOINCLUDE> ==特殊字元(UNICODE)== :* 將特殊字元的 UNICODE 值轉為可顯示的字元,避免此站...) |
|||
第23行: | 第23行: | ||
===罕用字=== | ===罕用字=== | ||
# 欲顯示罕用字:<SPAN STYLE="font-weight:bold;font-size:12pt">{{特殊字元|U+24ADF}}</SPAN> | # 欲顯示罕用字:<SPAN STYLE="font-weight:bold;font-size:12pt">{{特殊字元|U+24ADF}}</SPAN> | ||
− | # | + | # 利用底下的轉換工具,得知其 UNICODE(UTF32)值為: <tt>U+24ADF</tt> |
− | # | + | # 使用此模板,將它代換成 <tt><nowiki>{{特殊字元|U+24ADF}}</nowiki></tt> 即可在頁面上正常顯示,且不造成此站儲存、讀取的過程裡出錯。 |
===emoji=== | ===emoji=== | ||
# 同理,部份 emoji 於此站可正常顯示與存取,但有些會造成存取問題,此情況亦可利用此模板解決。 | # 同理,部份 emoji 於此站可正常顯示與存取,但有些會造成存取問題,此情況亦可利用此模板解決。 | ||
− | # | + | # 利用底下的轉換工具,查詢欲顯示的 emoji 之 UNICODE(UTF32)值。 |
# CPBL:<SPAN STYLE="font-size:12pt">{{特殊字元|U+1F649}} {{特殊字元|U+1F418}} {{特殊字元|U+1F981}} {{特殊字元|U+2694}} {{特殊字元|U+1F432}}</SPAN> | # CPBL:<SPAN STYLE="font-size:12pt">{{特殊字元|U+1F649}} {{特殊字元|U+1F418}} {{特殊字元|U+1F981}} {{特殊字元|U+2694}} {{特殊字元|U+1F432}}</SPAN> | ||
+ | |||
+ | ==轉換工具== | ||
+ | :*此工具僅轉換特殊字元,系統可正常存取的字元不處理。 | ||
+ | {| BORDER="0" CELLSPACING="0" CELLPADDING="5" STYLE="margin:0 0 20px 20px" | ||
+ | |- | ||
+ | | <DIV ID="instr"></DIV> | ||
+ | | <DIV ID="conv"></DIV> | ||
+ | | <DIV ID="outstr" STYLE="padding:8px;border:1px solid #666;background:#F8F8F8;width:400px;height:150px;box-sizing:border-box;border-radius:5px;overflow-y:auto;font:9pt/1.3 Consolas"></DIV> | ||
+ | |} | ||
+ | <DIV CLASS="DGPK-js"><nowiki> | ||
+ | function do_conv() {{{ | ||
+ | var instr = document.getElementById('instr').value; | ||
+ | var outstr = ''; | ||
+ | |||
+ | // 不適合用 length 與 substr(),超出 0xffff 的字元會被當成兩個字元,需要判斷高位元值,太麻煩 | ||
+ | var idx = 0; | ||
+ | while ((cpt = instr.codePointAt(idx)) != undefined) { | ||
+ | if (cpt > 0xffff) { | ||
+ | outstr += '<SPAN STYLE="color:blue">{{特殊字元|U+' + cpt.toString(16).toUpperCase() + '}}</SPAN>'; | ||
+ | idx++; | ||
+ | } else { | ||
+ | var c = String.fromCodePoint(cpt); | ||
+ | outstr += (c == '\n' ? '<BR>' : c); | ||
+ | } | ||
+ | |||
+ | idx++; | ||
+ | } | ||
+ | |||
+ | document.getElementById('outstr').innerHTML = outstr; | ||
+ | return false; | ||
+ | }}} | ||
+ | |||
+ | document.getElementById('instr').outerHTML = '<TEXTAREA ID="instr" STYLE="padding:8px;border:1px solid #666;background:#FFFFF8;width:400px;height:150px;box-sizing:border-box;border-radius:5px;overflow-y:auto;font:9pt/1.3 Consolas;resize:none"></TEXTAREA>'; | ||
+ | document.getElementById('conv').outerHTML = '<BUTTON ID="conv" onclick="return do_conv()">轉換》</BUTTON>'; | ||
+ | |||
+ | // event handlers | ||
+ | document.getElementById('conv').onclick = do_conv; | ||
+ | </nowiki></DIV> | ||
==開發記錄== | ==開發記錄== |
2020年9月9日 (三) 23:25的修訂版本
目次 |
特殊字元(UNICODE)
- 將特殊字元的 UNICODE 值轉為可顯示的字元,避免此站存取時出錯。
- 此站出錯時的情況為:可正常寫入、可正常顯示,但是再度編輯頁面時,該字元之後的文字都會不見,若此時沒注意而儲存,會造成頁面少掉一大塊內容。
語法
1 | {{特殊字元 | |
2 | <!-- 順序參數 --> | |
3 | | 1 | = <UNICODE 值,格式:U+24ADF> |
4 | }} |
範例
罕用字
- 欲顯示罕用字:%U+24ADF%
- 利用底下的轉換工具,得知其 UNICODE(UTF32)值為: U+24ADF
- 使用此模板,將它代換成 {{特殊字元|U+24ADF}} 即可在頁面上正常顯示,且不造成此站儲存、讀取的過程裡出錯。
emoji
- 同理,部份 emoji 於此站可正常顯示與存取,但有些會造成存取問題,此情況亦可利用此模板解決。
- 利用底下的轉換工具,查詢欲顯示的 emoji 之 UNICODE(UTF32)值。
- CPBL:%U+1F649% %U+1F418% %U+1F981% %U+2694% %U+1F432%
轉換工具
- 此工具僅轉換特殊字元,系統可正常存取的字元不處理。
function do_conv() {{{
var instr = document.getElementById('instr').value;
var outstr = '';
// 不適合用 length 與 substr(),超出 0xffff 的字元會被當成兩個字元,需要判斷高位元值,太麻煩
var idx = 0;
while ((cpt = instr.codePointAt(idx)) != undefined) {
if (cpt > 0xffff) {
outstr += '<SPAN STYLE="color:blue">{{特殊字元|U+' + cpt.toString(16).toUpperCase() + '}}</SPAN>';
idx++;
} else {
var c = String.fromCodePoint(cpt);
outstr += (c == '\n' ? '<BR>' : c);
}
idx++;
}
document.getElementById('outstr').innerHTML = outstr;
return false;
}}}
document.getElementById('instr').outerHTML = '<TEXTAREA ID="instr" STYLE="padding:8px;border:1px solid #666;background:#FFFFF8;width:400px;height:150px;box-sizing:border-box;border-radius:5px;overflow-y:auto;font:9pt/1.3 Consolas;resize:none"></TEXTAREA>';
document.getElementById('conv').outerHTML = '<BUTTON ID="conv" onclick="return do_conv()">轉換》</BUTTON>';
// event handlers
document.getElementById('conv').onclick = do_conv;
開發記錄
- [2020-09-09] 建立模板。