Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

encodingに関するsiroccoのブックマーク (17)

  • 第7回 Unicodeからの多対一の変換[前編] | gihyo.jp

    文字コードが引き起こすセキュリティ上の問題として、もっとも興味深いもののひとつである、Unicodeから他の文字コードへの「多対一の変換」で引き起こされる問題点について、今回と次回で説明します。 ご存じのとおり、Unicodeには非常に多数の文字が収録されていますが(現在最新版のUnicode 5.1.0では100,713文字が収録されているそうです⁠)⁠、Unicodeから他の文字コードへの変換においては、互換性や可読性の維持のためか、複数のUnicodeの文字が他の文字コードでは単一の文字に変換されることがあります。 この「多対一」の変換が、開発者も想定していなかったような問題を引き起こす原因となることが多々あります。 具体的な例として、Windows上でのUnicodeからの変換について説明します。 Windows上でのUnicodeからShift_JISへの変換 Windows上で

    第7回 Unicodeからの多対一の変換[前編] | gihyo.jp
    sirocco
    sirocco 2013/04/18
    WideChatToMultiByteは2番目の引数にWC_NO_BEST_FIT_CHARSというフラグを指定することができ、指定するとShift_JISの文字が存在しない場合は特定の文字(デフォルトでは '?')に変換される。指定されていないとよく似た文字に変換される
  • https://www.akanko.net/marimo/data/rfc/rfc2781-jp.txt

    sirocco
    sirocco 2013/04/16
    UTF-16 ISO 10646 の符号化(エンコード)方法 rfc2781-jp.txt
  • フリーティケットシアター全サービスが終了

    フリーティケットシアター全サービス終了 誠に勝手ながら、「フリーティケットシアター」のサービス提供を 2016年3月31日をもちまして終了させていただきました。 これまで長らくご愛顧を賜り、誠にありがとうございました。 http://www.freett.com/

    sirocco
    sirocco 2011/12/07
    "GHC 7.4.1 時代の日本語文字列の扱い"
  • UCS-2 UTF-8 変換 - elm200 の日記(旧はてなダイアリー)

    UCS-2 というのは2バイトの Unicode の文字集合(およびそのコード表)のことである。 UTF-8 というのは、「ASCII と互換性のある多バイト Unicode の符号化」のことである。 Linux の man page http://www.linux.or.jp/JM/html/LDP_man-pages/man7/utf-8.7.html あたりを参考にして、UCS-2 と UTF-8 の変換コードを Ruby 1.8 で書いてみた。 やっつけで書いたので内容は保障しないが、私が必要とする範囲では動いている。 参考までに。 def utf8_to_ucs2(ch) if ch[0] & 0b1000_0000 == 0 return ch[0] end if ch[0] & 0b1110_0000 == 0b1100_0000 c1 = (ch[0] & 0b0001_

    UCS-2 UTF-8 変換 - elm200 の日記(旧はてなダイアリー)
  • iconv

    Provides an interface to the POSIX iconv library functions for string encoding conversion. [Skip to Readme] Downloadsiconv-0.4.1.3.tar.gz [browse] (Cabal source package)Package description (revised from the package)Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

  • 文字コード(UTF-8,Shift_JIS,EUC-JP,ISO-2022-JP)についての俺的まとめ - 今日もスミマセン。

    「プログラマのための文字コード技術入門」を読んで自分なりに理解した点をザックリとまとめてみる。 それほど正確性を求めて書いているわけではないので、間違ってる可能性大です。 間違いなどあればコメントなど頂けるとありがたいです。 それぞれの文字コードはどう違うのか? 日語の文字コードは大きく以下の2つに分けられる JIS X 0208 文字集合をベースにしたもの Unicode文字集合をベースにしたもの JIS X 0208 文字集合をベースにした文字コードには、EUC-JP, Shift_JIS, ISO-2022-JP がある。 Unicode文字集合をベースにした文字コードには、UTF-8, UTF-16 などがある。 上で挙げた「文字コード」とは正確には「エンコーディング(文字符号化方式)」の事を指す。 文字符号化方式 文字集合って? 読んでそのまんま”文字の種類の集まり”。「キャラ

    文字コード(UTF-8,Shift_JIS,EUC-JP,ISO-2022-JP)についての俺的まとめ - 今日もスミマセン。
  • 文字エンコーディング判定スクリプト - t_komuraの日記

    最近、忙しかったのですが、久しぶりに少し時間があったので、随分前に書いた文字エンコーディング判定スクリプトを見直してみました。とりあえず、出来上がったものを投稿しておきます。 何か適当な日語の文字列を与えると、JIS/eucJP-win/SJIS-win/UTF-8 からそれなりに妥当な文字エンコーディングを返します。短い文字列で、mb_detect_encoding() だけでは判定に失敗する場合に役立つかもしれません。PHP 5.2.12 での動作を確認しています。 <?php /** * 日語文字列の文字エンコーディング判定(ASCII/JIS/eucJP-win/SJIS-win/UTF-8) */ function detect_encoding_ja( $str ) { $enc = mb_detect_encoding( $str, 'ASCII,JIS,eucJP-wi

    文字エンコーディング判定スクリプト - t_komuraの日記
  • kcode - 各種文字コードを表示する

    更新日: $Date: 2005-11-20 08:29:56 $ UTC ($Revision: 1.2 $) 公開日: 2004/04/01 目的 「Shift_JISで『あ』のコードってなんだっけ?」とか「UCS-2のU+3042ってどの文字だっけ?」といった際に、 ターミナルで手軽に確認できるようにするツールである。 機能 標準入力もしくはコマンドライン引数から、 文字そのものか文字エンコーディングの16進数表記を受け取り、 各種文字エンコーディングでの16進数表記とUnicode, IncのUnihan DatabaseのURLを出力する。 出力する16進数表記の文字エンコーディングの種類は以下の通り。

  • UTF-8の冗長なエンコードとは何で、なんでそれがセキュリティ的に危ないのか?を文字コード知識レヴェル3くらいの凡プログラマが考えてみる - tohokuaikiのチラシの裏

    何故かあたり前にならない文字エンコーディングバリデーション | yohgaki's blog ってあるように、いまいち文字コードの不正な判定による危険性ってのが分かってない。 SJISの問題は、(2/3)SQLインジェクションを根絶!セキュア開発の極意 - 第5回■注目される文字コードのセキュリティ問題:ITproの記事がわかりやすかった。 というか、やっぱりPHP使ってると誰でも一度は「なんじゃこの『¥』は?」って思うもんなんで。 なるほど、確かに↓の図のように「あるバイト」が2つの意味を持つっていう文字コード形態はやばいんだなと。 EUC-JPはそんなことはしないで、1つのバイトには1つの意味しか取らせない。 だけど、これでも文字化けが起こることがある。経験的には、「マルチバイトをXX文字で切り落としたい」とかやった場合。ちゃんと文字コードを判定してくれるPHPでいえばmb_subst

    UTF-8の冗長なエンコードとは何で、なんでそれがセキュリティ的に危ないのか?を文字コード知識レヴェル3くらいの凡プログラマが考えてみる - tohokuaikiのチラシの裏
  • 本当は怖い文字コードの話 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    本当は怖い文字コードの話 記事一覧 | gihyo.jp
  • Gauche練習帳 文字コード変換 - aike’s blog

    公式配布のMinGW版Gaucheは内部エンコーディングがUTF-8としてビルドされている。OSやロケールに依存しないという点でUTF-8は扱いやすいんだけど、WindowsのコマンドプロンプトはSJISを前提としているため以下のシンプルなプログラムでも文字化けしてしまう。 (print "こんにちは、世界") 解決方法としてはコマンドプロンプトをUTF-8にする方法がある。ただ、これをやるとこんどは日本語入力がしづらくなってしまう。 というわけで、プログラム側でSJISに変換して出力するようにしてみた。 sjis.scm (use gauche.charconv) (define-macro (sjis . body) `(with-ports (wrap-with-input-conversion (current-input-port) "shift_jis") (wrap-with

    Gauche練習帳 文字コード変換 - aike’s blog
  • シフトJIS / EUC-JPとUnicodeとの妥当な変換表: Netsphere Laboratories

    2004.10.17 新規作成。2004.12.19 加筆。2005.04.02加筆。 最近、コンピュータで扱う文字列の文字コードがUnicodeでなければならない場面が増えてきた。UnicodeとシフトJIS、EUC-JPを変換する機会が多い。この変換は変換表で行うが、変換表が実際的なものでなければ、文字化けが発生することになる。 おかしな変換表は、これまでは、特にLinuxなどの上で動作するオープンソースソフトウェアで多く見られた。おそらく規格原理主義者が多かったためだろう。そもそも、規格どおりに変換表を作ると、実用的な変換表にはならない。しかし、最近ではまともな変換表を実装しているものも増えてきて、うまく選ぶだけでいいようになってきている。 変換表の違いをまとめたページはよく見かけるが、実際にどのような条件を満たして変換するものを選べばいいか不明なので、まとめてみた。 変換表に求めら

  • Microsoft Support

    All Microsoft Global Microsoft 365 Teams Copilot Windows Surface Xbox Deals Small Business Support Software Windows Apps AI Outlook OneDrive Microsoft Teams OneNote Microsoft Edge Skype PCs & Devices Computers Shop Xbox Accessories VR & mixed reality Certified Refurbished Trade-in for cash Entertainment Xbox Game Pass Ultimate PC Game Pass Xbox games PC and Windows games Movies & TV Business Micro

    Microsoft Support
  • Ruby1.9をこれから使う人のためのM17Nまとめ

    仙台Ruby会議01で発表した内容のM17Nの部分をまとめました。 これから1.9を使う人の参考になればと思います。 重要なこと Stringのインスタンスが Encoding情報を持つようになりました 利用者は常にこのことを意識する必要があります。 1.9のStringには次のようなメソッドが追加されています String#encoding 現在のencodingを返します。 "牛タン".encoding => #<Encoding:UTF-8> String#force_encoding(encoding) データはそのままで、encoding情報のみ変更します。 バイト列自体は変更されません。 破壊的に変更されます。 "牛タン".force_encoding("EUC-JP") => "\xE7\x89\x9B\xE3\x82??\x83\xB3" String#encode(enc

    Ruby1.9をこれから使う人のためのM17Nまとめ
  • 文字化けクイズ(問題編) - 西尾泰和のはてなダイアリー

    みんな安易に「文字化けした!」って言うけど、いろいろ雰囲気の違う文字化けがあるじゃないの、というわけで5問ほどクイズにしてみた Q1(初級): 「こんにちは、世界」と表示されるはずなのになぜか「縺薙」などの難しい漢字が表示された。何が起きたか。 Q2(初級): 「こんにちは、世界」と表示されるはずなのになぜか「ã」(aの上に~)などが表示された。何が起きたか。 Q3(中級): ブラウザであるリンクをクリックしたところ「臼NG」で始まる謎の文字列が表示された。何が起きたか。 Q4(上級): 「こんにちは」と表示されるはずなのになぜか「S?kao」と表示された。何が起きたか。 Q5(上級): 「ファイルが見つかりません」と表示されるはずなのになぜか斜め四角に囲まれた疑問符などが表示された。何が起きたか。なお参考までに表示された文字列は20文字であり、表示されたウェブページのエンコーディングはu

    文字化けクイズ(問題編) - 西尾泰和のはてなダイアリー
  • [PostgreSQLウォッチ]第27回 SQLインジェクション脆弱性を修正,日本語ユーザーに大きな影響

    [PostgreSQLウォッチ]第27回 SQLインジェクション脆弱性を修正,日語ユーザーに大きな影響 SQLインジェクションに関する脆弱性の修正などを行ったPostgreSQL 8.1.4,8.0.8,7.4.13,7.3.15の各バージョンが,5月23日一斉にリリースされた(関連記事)。いずれも同じメジャーバージョン系列であれば,dump/restoreによるデータ移行なしでアップグレードできる(ただし,8.1,8.1.1から8.1.4への移行については注意が必要。詳細は付属のリリースノートを参照されたい)。 修正が提供されないPostgreSQL 7.2以前のバージョン 今回対策された脆弱性はPostgreSQL 7.2以前にも存在するが,開発者のポリシーにより,7.2以前はサポートの対象になっていない。いまだに7.2 以前のバージョンを使っているユーザーは,7.3以降にアップグレ

    [PostgreSQLウォッチ]第27回 SQLインジェクション脆弱性を修正,日本語ユーザーに大きな影響
  • ruby|perl - 文字コードのちょっと高度な判定 : 404 Blog Not Found

    2007年01月11日21:00 カテゴリLightweight Languages ruby|perl - 文字コードのちょっと高度な判定 これははっきり言って悩ましい。ですが、判定が曖昧な場合はその旨をきちんと通知するのがBetter Practiceではないかと思います。 Matzにっき(2007-01-03) 手元のcalkiがUTF-8の「》」相当の文字(U+8BB)を含むエントリが文字化けするので、 nkf-utf8のソースを見てみた。 どうも自動判定の優先順位がEUC-JP,SJIS,JIS,UTF-8で固定されていて、 EUCの範囲内に収まる文字列はすべてEUC-JPとみなすことになっている。 で、UTF-8の「》」はEUC-JPの「損」と同じバイト列なのだ。例えば、以下を行ごとにコード判定すると、以下のような結果になります。 son.utf8 » 損 »損 »Son nk

    ruby|perl - 文字コードのちょっと高度な判定 : 404 Blog Not Found
  • 1