利用者・トーク:Hiro3600

ページのコンテンツが他言語でサポートされていません。
提供:Wikisource

遅ればせながら。新旧字体変換ガジェットの開発、ありがとうございました!--Akaniji (トーク) 2015年11月2日 (月) 13:45 (UTC)[返信]

コメントありがとうございます。以前から気になっていた内容でしたので、やってみたという形です。お役に立てば幸いです。--Hiro3600 (トーク) 2015年11月2日 (月) 14:16 (UTC)[返信]

新旧字体変換ガジェットの辞書について[編集]

器 (常用漢字表番号334)、廉 (常用漢字表番号2107)の二件についてですが、器 → 器、廉 → 廉とすべきではないでしょうか?ご確認いただければ幸いです。--CES1596 (トーク) 2015年12月15日 (火) 11:59 (UTC)[返信]

コメントありがとう御座います。確認して辞書を修正しました。返信が遅くなりました。--Hiro3600 (トーク) 2015年12月19日 (土) 05:16 (UTC)[返信]
ありがとうございます。あともう一点気が付いたのですが、IEでは辞書の「互換漢字など」以降のデータが読み込まれていないようです。例えば內大臣府官制では、文中の「內」が「内」に正しく変換されません。合わせてご確認いただければ幸いです。--CES1596 (トーク) 2015年12月19日 (土) 06:09 (UTC)[返信]
本件についてですが、replaceでマッチするところまでは正しく動作するものの、その後の置換で不具合が生じるようです。replaceの代わりにsplitとjoinを使用して strD=unescape(strD.split("&#x").join("%u").split(";").join("")); とした場合には正しく変換されることを確認しましたので、変更をご検討いただければ幸いです。--CES1596 (トーク) 2015年12月21日 (月) 13:50 (UTC)[返信]
補足です。本件の原因は、IEでは「Stringオブジェクトのreplaceメソッドを、第1引数に正規表現、第2引数に動的な文字列の置き換えを行うための関数を指定して呼び出したとき、この第2引数の関数内で、RegExp.$n(nは整数)を呼び出しても、ただしく動作しない」ことにあるようです(参考:IEの正規表現 string.replaceメソッドとRegExp.$n)。RegExp.$nの代わりにarguments[n]を使用したところ、replaceでも問題なく動作しました。また、%u2f8fc(沿)がunescapeで正しく処理されていませんでしたが、サロゲートペアに変換すればよいようです。修正したコードを利用者:CES1596/char-convert0.js‎に置いておきます。--CES1596 (トーク) 2015年12月22日 (火) 14:03 (UTC)[返信]