©の表示について

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
nagashima
パワーユーザー
記事: 44
登録日時: 2007年5月26日(土) 15:52
お住まい: 東京

©の表示について

投稿記事 by nagashima » 2007年10月19日(金) 18:07

いつもお世話になっております。

件名どおりなのですがxslにて「©」を記述して表示させようとすると
下記のようなエラーページが表示されてしまいます。

---------------------------------------------------------------------------------
CMS Designer : Xsl Translation error
[message]
XML parser error 11: undefined entity (code: 2)
[XSL]
「©」を記述したxslファイルまでのパス
[line]
13
[module]
Sablotron
---------------------------------------------------------------------------------

「©」を表示させることはできないのでしょうか?

よろしくお願い致します。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: ©の表示について

投稿記事 by webmaster » 2007年10月19日(金) 22:40

 nagashimaさん、ご質問ありがとうございます。

 ©についてですが、この文字実体参照は(X)HTMLでは定義されている
のですが、XSLでは定義されていない為、そのままですと使用することができません。

 文字実体参照ではなく、数値実体参照を使うと、同じ文字を出力することが
可能です。(※「&」は半角にして下さい。下記記述では全角になっています)

コード: 全て選択

©
 もしくは、デザイン定義ファイル(*.xslファイル)の先頭の<?xml〜>の下に、

コード: 全て選択

<!DOCTYPE xsl:stylesheet [
	<!ENTITY copy "&#169;" >
]>
 のように、"copy"の文字実体参照を定義することでも使用可能になります。

 一度お試し頂ければ幸いです。

nagashima
パワーユーザー
記事: 44
登録日時: 2007年5月26日(土) 15:52
お住まい: 東京

Re: &copy;の表示について

投稿記事 by nagashima » 2007年10月22日(月) 13:55

webmaster様

ご返事ありがとうございます。

さっそく試させて頂きましたが、表示されませんでした。
エラーは表示されないようになりました。

コード: 全て選択

&#169;
の部分のみ表示されない状態です。

ソースを表示し確認しましたが、半角スペースが入っていました。

コード: 全て選択

&#169;

コード: 全て選択

<!DOCTYPE xsl:stylesheet [ 
   <!ENTITY copy "&#169;" > 
]>
両方試しましたが同じ現象です。

「&」は半角にして使用しています。

なにか他に方法はありますでしょうか?

よろしくお願い致します。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: &copy;の表示について

投稿記事 by webmaster » 2007年10月22日(月) 17:21

 nagashimaさん、お手数をおかけしております。

 「&copy;」が半角スペースになってしまうということで、いろいろ調べて
見たのですが、原因がつかめませんでした。m(__;)m

 弊社試験環境では問題なく表示できている為、何かサーバ環境的な要因である
可能性があるかと思います。
 出力の文字エンコーディングはEUC-JPのままなのですよね。

 一度、site.config.xml に次の「output」要素を追加して頂いてもよろしいでしょうか。

コード: 全て選択

<?xml version="1.0" encoding="UTF-8"?>
<site>
  <output disable-xslt-encoding="True" />
 これで問題が改善するかもしれません。
 それでも問題が改善しない場合、作成されたデザイン定義ファイルを弊社まで
お送り頂いてもよろしいでしょうか。
 アドレスはcms(アットマーク)al-design.jp になります。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: &copy;の表示について

投稿記事 by webmaster » 2007年10月22日(月) 17:21

※この投稿はnagashima様によるものです。webmasterが間違って返信ではなく編集で上書きしてしまった為、代理で再投稿しました。
webmaster様

ご返事ありがとうございます。

さっそく試させて頂きましたが、表示されませんでした。
エラーは表示されないようになりました。

コード: 全て選択

&#169;
の部分のみ表示されない状態です。

ソースを表示し確認しましたが、半角スペースが入っていました。

コード: 全て選択

&#169;

コード: 全て選択

<!DOCTYPE xsl:stylesheet [
   <!ENTITY copy "&#169;" >
]>

両方試しましたが同じ現象です。

「&」は半角にして使用しています。

なにか他に方法はありますでしょうか?

よろしくお願い致します。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: &copy;の表示について

投稿記事 by webmaster » 2007年10月22日(月) 17:26

nagashimaさん、お手数をおかけしております。

 「&copy;」が半角スペースになってしまうということで、いろいろ調べて
見たのですが、原因がつかめませんでした。m(__;)m

 弊社試験環境では問題なく表示できている為、何かサーバ環境的な要因である
可能性があるかと思います。
 出力の文字エンコーディングはEUC-JPのままなのですよね。

 一度、site.config.xml に次の「output」要素を追加して頂いてもよろしいでしょうか。

コード: 全て選択

<?xml version="1.0" encoding="UTF-8"?>
<site>
  <output disable-xslt-encoding="True" />
 これで問題が改善するかもしれません。
 それでも問題が改善しない場合、作成されたデザイン定義ファイルを弊社まで
お送り頂いてもよろしいでしょうか。
 アドレスはcms(アットマーク)al-design.jp になります。

nagashima
パワーユーザー
記事: 44
登録日時: 2007年5月26日(土) 15:52
お住まい: 東京

Re: &copy;の表示について

投稿記事 by nagashima » 2007年10月22日(月) 18:10

webmaster様

お世話になります。
出力の文字エンコーディングはEUC-JPのままなのですよね。
出力文字コードの変換を使用しshift_jisにしています。
クライアント先から送られてきたhtmlファイルやcssなどがshift_jisで作られていたため、あわせてshift_jisで出力するようにsite.config.xmlにて指定してあります。

shift_jisの指定をなくし、文字コードをeuc-jpにもどし、

コード: 全て選択

<output disable-xslt-encoding="True" />
の指定を追加し試してみました。

エラーは出ませんでしたが、「&#copy;」の部分が文字化けしています。

デザイン定義ファイルをお送りしたほうがよろしいでしょうか?

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: &copy;の表示について

投稿記事 by webmaster » 2007年10月22日(月) 20:05

nagashimaさん、お手数をおかけしております。

あれからいろいろ調べた所、Shift_JISの場合、copyrightマークが文字コードセット
に存在しないようです。その為、半角スペースになってしまうものと思われます。
弊社環境で試した所、Firefox上では「?」で表示されました。

そこで、ちょっと面倒なのですが、「&copy;」をcopyrightマークに変換せず、
そのままブラウザに表示する方法をお試し下さい。

以下のコードで、ブラウザにそのまま文字実体参照が送られるかと思います。

コード: 全て選択

<xsl:text disable-output-escaping="yes">&copy;</xsl:text>
この方法の場合、ENTITYの定義は不要となりますので削除して下さい。
outputのdisable-output-encodingも元に戻してくださって結構です。

考えてみれば、こちらの方法の方が正攻法かと思います。m(__)m
回り道になってしまい、申し訳ありませんでした。

nagashima
パワーユーザー
記事: 44
登録日時: 2007年5月26日(土) 15:52
お住まい: 東京

Re: &copy;の表示について

投稿記事 by nagashima » 2007年10月22日(月) 20:21

webmaster様

お世話になります。

コード: 全て選択

<xsl:text disable-output-escaping="yes">&copy;</xsl:text>
上記の方法で表示できました。

いろいろとお調べいただきありがとうございました。

返信