本館粉絲專頁

使用者:Digipunk/PAGE/UNICODE

分享此網頁到Facebook
分享此網頁到Plurk
分享此網頁到百度搜藏
分享此網頁到Twitter
分享此網頁到Del.icio.us
最近作者:Digipunk 2020年9月17日 (星期四)23:33
台灣棒球維基館
跳轉到: 導覽搜尋

目次

[編輯] 特殊字元(UNICODE)

  • 將特殊字元的 UNICODE 值轉為可顯示的字元,避免此站存取時出錯。
  • 此站出錯時的情況為:可正常寫入、可正常顯示,但是再度編輯頁面時,該字元之後的文字都會不見,若此時沒注意而儲存,會造成頁面少掉一大塊內容。

[編輯] 語法

1 {{特殊字元
2 <!-- 順序參數 -->
3 | 1 = <UNICODE 值,格式:U+24ADF 或 24ADF>
4 }}

[編輯] 範例

[編輯] 罕用字

  1. 欲顯示罕用字:%U+24ADF%
  2. 利用底下的轉換工具,得知其 UNICODE(UTF-32)十六進位值為: U+24ADF
  3. 使用此模板,將它代換成 {{特殊字元|U+24ADF}} 即可在頁面上正常顯示,且不造成此站儲存、讀取的過程裡出錯。

[編輯] emoji

  1. 同理,部份 emoji 於此站可正常顯示與存取,但有些會造成存取問題,此情況亦可利用此模板解決。
  2. 利用底下的轉換工具,查詢欲顯示的 emoji 之 UNICODE(UTF-32)十六進位值。
  3. CPBL:%U+1F649% %U+1F418% %U+1F981% ⚔️ %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] 建立模板。