「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板
[一覧へ] > (@644) [中] [アイデア]
@644■ (#2032) タグ属性一覧取得でかなが変になる - 文平 (2012-08-23 14:21) /中 未処理
【症状】タグ属性一覧取得でカタカナが一部変わる
【再現方法】
#ここから
XML=「<バグテスト アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン="勝手にXML" />」
XMLから"バグテスト"のタグ属性一覧取得して言う//カタカナ
#ここまで
【要望】カナが変わらないようにする。また、なぜそうなるのかも解決してほしいです。
【バージョン】1.53352


(#2034) Re: タグ属性一覧取得でかなが変になる - うぇいく (2012-08-24 11:54) /中 未処理
 状態を確認してみました。

 属性名の英字を大文字に揃える際に、いくつかの全角文字が影響を受けて別の文字に化けてしまうようです。

 おそらく ですが、現在の仕様としては、タグ名および属性名はUSASCIIに属する文字のみに対応している(それ以外は考慮外)ということなのだと思います。

 修正は可能そうですが、修正した場合においても、(htmlでの利便性のため)大文字化はおこなうことになると思います、大文字/小文字を区別する必要があるケース(XMLとかXHTMLとか?)では使えません。
(nameでもNaMeでも、NAMEになる。また、nameはNAMEになる・・・かも)

・属性名の大文字小文字を変更しないような(XMLでも便利な)別のコマンドは必要?
・修正した場合、全角の扱いはそのままのがよい?大文字(小文字)に変換したほうがよい?htmlの範囲ならどちらでも関係ないといえば、その通りですが・・・

(#2035) タグ属性一覧取得でかなが変になる - 文平 (2012-08-24 16:52) /中 未処理
でもやっぱりXML使えないと困るので...
やっぱり使えるような命令があればいいんですけどね

(#2037) タグ名・タグ属性の全角文字が化ける・・・ことがある - うぇいく (2012-08-25 19:13) /中 未処理
ひとまずは、以下の修正を待つのがよいかもしれません。
XML向けの機能は・・・どうするのがよいのか未定。
方法としては、頭にXMLの付く命令を追加して、こちらでは大文字変換しないようにする。たぶん、'タグ切り出し''タグ属性取得''階層タグ切り出し''タグ属性一覧取得'あたりが対象が思いつくのですが、命令が増えると名前空間をどんどん侵食する仕様なのでちょっとあれです。
(機能を使わない人でも、変数名や関数名に同名を使うと問題になったり)

いっそ、XML向けは独立したpluginとlibの形式で追加すると、使わない人には影響しないし、使わない時にはlibを取り込まなくできるので良いのかなぁ という感じです。


最後に開発者向けの修正箇所。
strunit.pasの関連する処理部分にてUpperCaseを用いているのが原因です。この関数は、マルチバイト文字を破壊します(2バイト文字の2バイト目だけ見て大文字化してしまうがある。LowerCaseも同様)
strunit.pas(rev273)の、以下の行にあるUpperCaseを、UpperCaseExにすることで、とりあえずは文字化けは回避できます。
798
821
864
871
991
1002
1031
1032

ただし、全角英字も小文字が大文字に変更されてしまうことになるので、「半角英小文字のみを半角英大文字にする」関数を別途実装して呼び出すほうが良さそうです(その意図で、あえてUpperCaseを用いていた と思っています)

(#2043) XML処理用にPluginに切り出し - うぇいく (2012-09-01 16:22) /中 アイデア
XML向けに、大文字小文字変換をしないようにしてpluginの形にしてみました。
XMLの処理に使う場合には、利用してみてください。
(HTMLに使うと、大文字/小文字の扱いで偉いことになります。たぶん。)

http://weyk.la.coocan.jp/weyk/nadesiko/

(#2032)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能