Scfサンプル

Scfを使った補助文字(及び外字)表示サンプルです。画像の利用が分りやすいように文字サイズを大きくして背景色を変えていますが、これらは設定で変更可能です。

[そのまま表示]をクリックすると、補助文字変換処理を行わずに表示します。この場合、クライアント側(ブラウザ,OS,フォント)が補助文字に対応可能な場合にのみ補助文字が正しく表示されます。

サンプル表示

サンプルのソースコード

以下は上記サンプル(jsp)のソースです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
<%
    if (request.getParameter("nop"!= null){
        request.setAttribute(jp.utilz.util.scf.SCFilter.ATTR_NOP, "true");
    }
%>
<html>
<head>
<title>Scf sample</title>
<style type="text/css"><!--
{ font-family: Osaka, Tahoma, sans-serif; }
-->
</style>
</head>
<body>
[<a href="<%=response.encodeURL("sample.jsp")%>">画像使用</a>]
[<a href="<%=response.encodeURL("sample.jsp?nop=true")%>">そのまま表示</a>]<br>
<hr>
これは補助文字(U+216B4)です: <%="\uD845\uDEB4"%><br>
これは外字(U+E000)です:<%="\uE000"%><br>
</body>
</html>

補助文字をjsp内に記述する場合はUnicodeエスケープを使用してサロゲートペアを記述します。PUAの場合は通常のUnicodeエスケープです。

ファイルやDBから取得した文字列に補助文字が含まれ、それを出力する場合などは補助文字やPUAに関して意識する必要はありません。

補助文字入力、表示のサンプル

補助文字を入力して動的に表示するサンプルです。

サンプル表示



NOTE: 補助文字(Supplementary character)を数値文字参照(Numeric character reference)で表現する場合、"&#xD845;&#xDEB4;"のようにサロゲートペアで記述するのではなく、"&#x216B4;"のように1文字のUnicodeとするのが正しいそうです。参考:W3CのFAQ