- - PR -
ノータッチ・デプロイメントでのS-JIS変換
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-09-24 20:08
前回は質問に答えてくださってありがとうございました。
おかげさまで起動時に引数をとることはできるようになったのですが、 今度はその引数に日本語が使われると文字化けして送られるようになりました。 エンコードがunicodeであることがいけないのはわかったので、 S-JIS変換しようと思ったのですが、うまくいきません。 ノータッチ・デプロイメントでなければHttpUtility.UrlEncodeで問題ないのですが、 ノータッチ・デプロイメントでこれを使っているとセキュリティエラーになってしまいます。 protected string sjisEncode( string sorce ) { Encoding sjis = System.Text.Encoding.GetEncoding("SHIFT-JIS"); byte[] utf8String = Encoding.UTF8.GetBytes( sorce ); byte[] sjisString = Encoding.Convert( Encoding.UTF8, sjis, utf8String ); return sjis.GetString( sjisString ); } のような関数を作ってやってみたのですが、Uriは同じものになってしまいました。 S-JIS変換、あるいは日本語の送信をうまくやる方法はないものでしょうか。 | ||||
|
投稿日時: 2003-09-27 15:40
解決とは違うのですが、力業で対応したので参考までに自己レスしておきます。
結論から言うと、S-JIS変換する良い方法は見つかりませんでした。 ですので、変換しないでUriエンコードされた文字列を送ってしまい、 受け取る側でもその文字列を変換しないでそのまま記録してしまいます。 そして、データを受け取るときにデータの先頭に適当なUriを付加してUriオブジェクトを作ってしまいます。 そのUriオブジェクトのToString()を使うと元の文字列が取得できますので、 あとは付加したUri文字列を削除してデータを取得しました。 たぶんもっとスマートな方法があるんでしょうね。 | ||||
|
投稿日時: 2004-07-09 13:07
他のことを調べていて行き着いたのですが、これ、SHIFT-JISだからそのままなんでしょうね。SHIFT_JISなら、エンコードされていたと思います。 |
1