トップ(最新)

nDiki : charset

charset

RFC

RFC2277 3, RFC2278 2.3.

オクテット列から文字列への変換方法。 例えば、符号化文字集合文字符号化方式の組。

HTMLcharset

HTML 4.01 では charset は character encoding をさすとしている ((符号化)文字集合としてはUCSを使用するとしているため、encoding だけをさすものとしている?)。

値に設定できるのは

で定義されているもの(大文字小文字は区別しない)。

java.nio.charset.Charset

16ビットUnicode文字列とバイト列間の写像。

スポンサード リンク

Related term

2003年12月12日 (金)

[ Java ] Unicode (UCS) -> 別の charset このエントリーを含むはてなブックマーク

Java の String を 'abc' なら US-ASCII (ANSI_X3.4-1968)に、'あいう' なら ISO-2022-JP にしたいという話。 やっぱり文字列中の全ての文字について候補の charset に含まれているか見ていくしかないのか?

Mew だとちゃんと、US-ASCIIだけならus-ascii で、日本語が含まれていれば iso-2022-jp でメールを送ってくれるがここら辺はどうやっているんでしょ。 ソースを見てみるか。

スポンサード リンク


[ 12月12日全て ]

2004年1月25日 (日)

[ WiKicker ] 通知メールの Subject: フィールドのエンコーディング修正 このエントリーを含むはてなブックマーク

WiKicker には通知メールの Subject: フィールドがたまに壊れている問題があるのだが、ずっと放置しておいたままだった。 そろそろ次のバージョンをリリースしたいと思うので、今回修正しておく。

結果半日かかってしまった。

@ MIME::Words::encode_mimewords

まず現在エンコーディングに使っている MIME::Words::encode_mimewords (5.404)であるが、マニュアルを見ると charset によってはマズいエンコーディングを吐くらしい。 WiKicker で Subject: ヘッダが壊れるのも、この問題のせい。 文字境界を無視してぶったぎってエンコードされてしまう。 ということで、自前でエンコードする事にする。

@ 自前エンコーダ

まぁたいしたものではないが。 最初はエンコードする必要のある部分だけ encoded-word にする事も考えたのだが、面倒なのでやめ。 全部エンコードしてしまう事にする。 エンコーディングも最初は、"Q" encoding で実装しはじめたのだが(MIME::Words のデフォルトがそうなので、WiKicker でもそれを使っていた)ちょっと面倒なので、"B" encoding に変更。

@ タイトルの途中に空白が入ってしまう?

で、テスト。うーん。途中に余分な空白が入ってしまうな。 mew で受信したメールを見ると folding のところで余分な空白が入って表示される。 RFCとか見ても encoded-word に挟まれた CRLF SPACE は無視されるはずなんだけれどなぁ。

UTF-8 の代わりに ISO-2022-JPにしてみたりとか、エンコーディングを変えてみたり(Q or B)したのだが変わらず。 他から受けとっているメールは問題ないから、mew の問題でもなさそうだし。

ん? mew の inbox を確認してみると、他のソフトからのは \n, space でフォールディングされているな。 今書いているコードから送ったやつは \r\n, space でフォールディングされている。 RFC的には CRLF space では?

@ 問題は別のところに

WiKicker で \r\n, space でフォールディングしているところを \n, space でフォールディングするようにしたら直る。 けど、これでいいのかな?

って良く考えたら、他の部分はヘッダでも本文でも改行には \n を使っているんだった(Perl のヒアドキュメントを使っているので)。 ということは今まで、それを標準入力から受けとった sendmail が LFCRLF にしてくれていたのか。 あまり深い事考えてなかったな。 今回はフォールディングのところだけで CRLF にしたため 一個余分に CR がついてしまい、それがタイトルの文字列中の空白として表示されてしまったと。

結局疑うべきは自分のコード。


[ 1月25日全て ]

2004年4月16日 (金)

TeXSubversion このエントリーを含むはてなブックマーク

仕事のドキュメント書き。 「ドキュメント管理用 Subversionリポジトリ作成」にのっとってやってみる(結局前回考えて以降、時間がとれなくて Subversion に投入していなかった)。

今期、プロジェクトでこの方式を採用しようと思っているのだが Windows ユーザと協同作業しようとすると charset の問題があるな。 とりあえずいわゆるJISにしておけば pTeX としては問題ないと思うが、他の作業環境はどうなのだろう。


[ 4月16日全て ]

2004年5月4日 (火)

[ DiKicker ] くっつき BBSをくっつけてみた。 このエントリーを含むはてなブックマーク

DiKicker でのコメント機能についてだがあらためて実装するのも大変なので、たつを氏のくっつき BBSを組み込んでみた (v1.0rc2)。

@ ファイルレイアウト

 $HOME/etc/kuttukibbs/kuttukibbs.conf - 設定ファイル (一部変更)
 $HOME/var/log/kuttukibbslog.txt - 管理者用ログファイル

 $HTML/kuttukibbs/kuttukibbs.cgi - CGIプログラム (一部変更)
 $HTML/kuttukibbs/getlog.cgi - (一部変更)
 $HTML/var/kblog/$ID.log
 $HTML/var/kblog/$ID.js

@ DiKicker への埋め込み

記事毎ののHTMLフラグメントを生成する際に、kuttukibbs.cgi へのリンクと、(getlog.cgi経由での)Feedファイルの読み込み部分を埋め込むように変更。

くっつくFeedファイルが無い場合は commentshortクラスの div要素 (tDiary スタイル)が存在しなくなるようにしたかったのでレンダラではこれを埋め込まず、getlog.cgi で出力するようにした。

ついでに getlog.cgi は

  • charset指定を UTF-8 に修正
  • 違う階層Feedファイルを読むように修正

した。

@ kuttukibbs.cgi のUTF-8対応

Feedファイル用にコメントを切りつめる際、UTF-8 だと後続バイトが切り捨てられる場合がある。 WiKickerUTF-8 用の substr / length ラッパがあるのでこれを使うように修正。

@ tDiary テーマの修正

tDiary では日単位でのコメントでありテーマもそれにあわせてデザインされている。 DiKicker では記事単位にコメントをつけるようにしたいので(またそうでないと記事単位で集約した場合に困るので)、使っているテーマ(Nana さんの flower をベースにしているもの)のCSSを修正。

@ くっつけてみる

テストした範囲ではうまくいっているようだ。 HTMLレンダリング済みの記事はキャッシュが更新されないとコメントするためのリンクが現れないが順次出てくるはず。

くっつきとして見るには要 JavaScript サポート。


[ 5月4日全て ]

2004年5月18日 (火)

Subversion - auto-props このエントリーを含むはてなブックマーク

Windows 上での TeX 書きユーザと仲良くするために。

 svn propset svn:eol-style native report.tex

charset はいわゆる JIS で。

@ auto-props

~/.subversion/config で

 [miscellany]
 enable-auto-propcs =yes
 [auto-props]
 *.tex = svn:eol-style=native

デフォルトで作成される config ではセクション名もコメントアウトされている事に注意。 個人の設定ではなくて、リポジトリとして設定することはできないのかな。


[ 5月18日全て ]

2005年4月10日 (日)

Windows 上での Apache 2.0.53 では PATH_INFOシフト JIS このエントリーを含むはてなブックマーク

WiKickerWindows 上での動作確認の続き。 WiKickerPPM パッケージを作成して ActivePerl 5.8.6.811 上にインストール。 依存するモジュールで、ActivePerl に入っていないものは以下の通り。

既に手元で PPM パッケージ化済みなので、これもインストールしておく。

後は RCS をパスの通っているディレクトリに入れてタイムゾーンを設定。

 TZ=JST-9

CGI プログラムとして実行。 お、表示できた。 書き込みはと。

エラー

予想していたけれど、sendmail に依存していたところ。 sendmail が見つからない場合はメールの送信をスキップするように修正。

これでうまく動くかなと思ったら、日本語名のページを作るとうまく表示できない問題を発見。

@ PATH_INFOシフト JIS で渡される

WiKicker では UTF-8 文字列をURIエスケープして WikiPageURLを生成している。 このURIにアクセスされると WiKicker は、PATH_INFO から WikiName を取り出す。 この文字列がシフト JIS になってしまっている。

Windowsファイル名に使用する charset にあわせて、Apache が変換してしまっているようだ。 調べてみると他の WikiEngine でも同様の問題にあっているという記事が見つかった。

将来の 2.0 系でパッチが取り込まれて修正されるとか、そうでないとか。

現状どうするかなぁ。 WiKicker 側でシフト JIS から UTF-8 に戻すというのもできない事はないけれど、あまりやりたくはないな。 いったんシフト JIS を介しているという時点で、シフト JIS に無い文字の扱いに関する問題をかかえてしまっているし(Apache が)。

対策案:

  • Apache 1.x 系を使う (まだ未確認だが、こちらだと勝手に変換されないらしい)
  • WiKickerPATH_INFO を使わないオプションをつける(URI Query Component は勝手に変換されない)
  • WiKicker 側でシフト JIS から UTF-8 に変換する

[ 4月10日全て ]

2006年3月23日 (木)

Rekisa で TortoiseSVN から日本語ファイルの差分表示 このエントリーを含むはてなブックマーク

自分の開発チームでは、 Subversion を用いて pLaTeX2e ドキュメントを共同執筆というスタイルが随分多くなってきた (自分が推進しているわけだが)。

チームメンバのほとんどは Windows 上で TortoiseSVN を使っているのだが、内蔵の差分ビューアを使っていると charset を自動判別してくれないので、いわゆる JIS コードで書いている TeX のソースファイルの扱いがちょっと不便である。

そういえば以前はこの問題の声が聞かれたけれど、最近誰も言わなくなったな。 解決したのか、差分とか見なくなったのか。

数行書き換えて、一つの変更点としてコミットメントログを残せる単位でガシガシコミットしてしまう私と一緒に作業している人は、いつもコミット負けしているはずなのだが。

ということで TortoiseSVN で外部差分ビューアとして使えるツールを調べておこう。 まずは差分表示アプリケーション Rekisa。

日本語のファイルの charset を自動判別してくれるし、表示が美しい。 差分を見るには良さそうである。

マージ作業もあわせてするとすると編集機能が必要だが、Rekisa 自身では直接編集できないようだ(外部エディタを呼び出すことはできる)。

マージまですると WinMerge が本命? こちらはまだ試していないので後日。


[ 3月23日全て ]

スポンサード リンク

Related web page

Character Sets
EUC とは Extended Unix Code の略で、UNIX の内部処理用漢字コードです。 EUC は日本語エンコーディング専用ではなく、中国語用の EUC-ZN や、韓国語用の EUC-KR 等も存在します。 EUC-JP は ISO-2022-JP を第 1 バイト・第 2 バイト共に 0x80 だけシフトさせたもので、このため "最上位ビットを立てた JIS" とか "UJIS" 等と呼ばれる事もあります。 EUC-JP における JIS X 0208 は第 1 バイト・
http://www.studyinghttp.net/charset#Abstract
文字符号化
charset
http://www.w3.org/International/O-charset.ja.html
ドキュメントを読まない輩
<Limit> AddDefaultCharset LanguagePriority ScriptAlias SetEnvIf
http://ore.dyndns.org/web/RTFM.html

■よく検索されるキーワード

perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.122956s / load averages: 0.04, 0.09, 0.13
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)