本館粉絲專頁

使用者:Digipunk/PAGE/UNICODE:修訂版本之間的差異

分享此網頁到Facebook
分享此網頁到Plurk
分享此網頁到百度搜藏
分享此網頁到Twitter
分享此網頁到Del.icio.us
台灣棒球維基館
跳轉到: 導覽搜尋
(新頁面: <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>
# 至網站「[https://www.cns11643.gov.tw/index.jsp 全字庫(中文標準交換碼)]」查詢其 Unicode 編碼,得知為: <tt>U+24ADF</tt>
+
# 利用底下的轉換工具,得知其 UNICODE(UTF32)值為: <tt>U+24ADF</tt>
# 使用此模板,<tt><nowiki>{{特殊字元|U+24ADF}}</nowiki></tt> 即可在頁面上正常顯示,且不造成此站儲存、讀取的過程裡出錯。
+
# 使用此模板,將它代換成 <tt><nowiki>{{特殊字元|U+24ADF}}</nowiki></tt> 即可在頁面上正常顯示,且不造成此站儲存、讀取的過程裡出錯。
  
 
===emoji===
 
===emoji===
 
# 同理,部份 emoji 於此站可正常顯示與存取,但有些會造成存取問題,此情況亦可利用此模板解決。
 
# 同理,部份 emoji 於此站可正常顯示與存取,但有些會造成存取問題,此情況亦可利用此模板解決。
# 至網站「[https://unicode.org/emoji/charts/full-emoji-list.html Emoji List]」查詢欲顯示的 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 }}

範例

罕用字

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

emoji

  1. 同理,部份 emoji 於此站可正常顯示與存取,但有些會造成存取問題,此情況亦可利用此模板解決。
  2. 利用底下的轉換工具,查詢欲顯示的 emoji 之 UNICODE(UTF32)值。
  3. 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] 建立模板。