タグ

character encodingに関するrikubaのブックマーク (15)

  • 対象文字列が文字化けしているかどうか条件分岐。日本語が含まれているかどうかの判定?

    語が含まれているかどうか判定すれば良い? この時、「文字化け」している文字が混ざっているかどうか判定する方法はあるでしょうか? 結論から言うと、アルゴリズミックに確実に判定するのは不可能でしょう。一番大きな理由としては、下記の推測の過程に挙げましたが「一部の情報が欠落しているから」です。 文字化け例 ã»ã¯ã¬ã¸ããã«ã¼ã ちなみに、この文字化けはどういう原因かこれだけから推測可能ですか? 経験と勘で推測する(guess)のであれば、 ・元文字列は「・クレジットカード」 ・エンコーディングはUTF-8 ・文字化けの原因は、UTF-8のバイト列をISO-8859-1として解釈し、さらに一部の制御コードが欠落した と言うことになります。 ざっくりと、推測の過程を示しておきます。 「文字化け」の文字列をISO-8859-1(Latin1)エンコーディングでバイト列に変換してみる 日

    対象文字列が文字化けしているかどうか条件分岐。日本語が含まれているかどうかの判定?
  • PHP: mb_detect_encoding - Manual

    エンコーディングの候補の一覧から、 文字列 string のもっとも可能性が高い文字エンコーディングを検出します。 追加の情報なしに、 意図した文字エンコーディングを自動で検出する行為は、 全く役に立ちません。 これは、暗号化された文字列を鍵なしにデコードする行為に似ています。 "Content-Type" HTTP ヘッダのような、 データを転送された際に付いてくる情報や、 保存された文字エンコーディングに関する指示を指定することが常に望ましいです。 この関数は、全ての文字列が正しいバイト配列とは限らない マルチバイト文字列を指定するともっとも役に立ちます。 入力となる文字列に誤ったバイトが含まれていた場合、 そのエンコーディングは採用されず、次のものを試します。 パラメータ string 調べる対象の文字列。 encodings 文字エンコーディングの一覧を試す順番に指定します。 この

  • Pythonのchardetモジュールが、"testあ"という文字列(UTF-8)の文字コードを"Windows-1254"だと判定する

    "testあ"のUTF-8表現は、74 65 73 74 e3 81 82 (1バイトデータの表記は全部16進、以下同様, python3風に書くとb'\x74\x65\x73\x74\xe3\x81\x82')で、chardetが判定するのは「文字列」ではなく、このバイト列です。 ちなみにこのバイト列をUTF-8, Shift_JIS, EUC-JP, ISO-8859-1, Code Page 437, Windows-1254で解釈すると、以下のようになります。 UTF-8 testあ (まぁ、当たり前) Shift_JIS (不正) EUC-JP (不正) ISO-8859-1 testã (81 82 は制御コードにあたるので見えないが不正ではない) CP437 testπüé Win1254 testã‚ (81は未定義なので来は不正、chardetは未定義にあたるバイトが現

    Pythonのchardetモジュールが、"testあ"という文字列(UTF-8)の文字コードを"Windows-1254"だと判定する
  • 参考資料 - CyberLibrarian

    図書館員のコンピュータ基礎講座 TOP 参考資料 基礎情報 2進数、16進数と10進数 情報の単位 論理演算 数詞 ローマ数字 年月の表現 西暦・和暦対照表 暦の年月と季節 暦注 月の大小 紙の寸法 人名 文字、文字コード Unicode JIS X 0208コード表 JIS X 0212コード表 JIS X 0213コード表 JIS83制定時の変更点 JIS90制定時の変更点 JIS補助漢字および拡張漢字で復活した字体 JIS2004制定時の変更点 JIS X 0208およびJIS X 0213の字形・字体の変更点 JIS包摂規準 新旧字体表 常用漢字表 人名用漢字 文字 > ラテン文字 | ラテン特殊文字 | キリル文字 | ギリシア文字 | アラビア文字 書字方向 ローマ字 点字表 URIで使用できる文字 文字サイズ GB 2312-80コード表 Big5-1984コード表 KS X

  • Go と Rustの文字列 - yanok.net

    Go言語における文字列はUTF-8のバイト列を保持します。また、Unicodeの1符号位置に対応するデータ型としてruneというものが用意されており、これは32ビット整数と同じものです。他の言語でいうchar型にあたります。 Rustでも類似の形です。つまり、文字列型はUTF-8のバイト列を保持し、Unicodeのスカラー値に対応する型としてcharが定義されています。(ここでわざわざ「スカラー値」といい「符号位置」としていないのはRustのドキュメントがそうしているせいで、まあほぼ同じようなものですが、サロゲート上位下位の範囲の値を含まない点だけが違います) こうなるとUTF-16の出る幕がない感じになってきます。今後、JavaやC#のように「文字列はUTF-16、char型は16ビット」というものから、こちらの方式へシフトしてくるのでしょうか。JavaなどはUnicodeのBMPにしか

  • ISO-IEC 2022 - Wikipedia

    ISO/IEC 2022(旧称 ISO 2022)は、 文字集合を7ビット符号または8ビット符号で表現するための技術、および 複数の文字集合を単一の文字符号化方式に含める技術 を規定するISO規格である。JISの対応規格はJIS X 0202 「情報技術-文字符号の構造及び拡張法」[1]。Ecma Internationalの対応規格はECMA-35。 ISO/IEC 2022 の符号化方式は、一般に、1文字に1バイトか2バイト以上を使う可変長の文字符号化方式である。いくつかの符号化表現がISO/IEC 2022の機構を使っている。たとえば、ISO-2022-JPは日語で広く使われている符号化表現であり、いわゆる「JISコード」というのもこれを指すことが一般的である。 歴史[編集] コンピュータによる文字情報処理が可能になって以来、さまざまな言語のために、コンピュータ上で文字データを表現

  • JIS X 0201 - Wikipedia

    JIS X 0201は、日産業規格 (JIS) の制定している文字コード規格で、初版は1969年6月1日の制定であり、現存のJISにおける最も古い文字コードである。規格名称は7ビット及び8ビットの情報交換用符号化文字集合。名称が示す通り、7ビット符号と8ビット符号での運用が予定されている。図形文字の集合を規定するための規格であり、JIS X 0211 (ISO/IEC 6429) で規定される制御文字集合と組み合わせて使用する。 現在の規格番号はJISの部門X(情報処理)の新設に伴って1987年3月1日に変更されたもので、旧規格番号はJIS C 6220。俗称はANKコードで、'ANK'はこのコードの主要構成文字であるアルファベット (Alphabet)、数字 (Numerical digit)、片仮名 (Katakana) の頭文字より来ている。 JIS X 0201はラテン文字用図形

  • Mac OS X の NFD 問題での対策諸々 - Qiita

    おさらい。 ∥ Unicode正規化 - Wikipedia 正規化形式 NFC: Normalization Form Canonical Compression | 文字に何がくっついていようと、組み合わせて作られた文字であろうと、「一文字」は「一文字」じゃ。圧縮形式。Linux のファイルシステムや Windows の NTFS などが普通に使っている。 NFD: Normalization Form Canonical Decompression | 濁点・半濁点を、あるいはウムラウト等のダイアクリティカルマークを、体の文字とは分離してエンコードした形式。OS X の HFS+ が、これを採用してくれちゃっている。 基としては、OS X 上に置かれるファイルは NFD であってくれて、LinuxWindows 上にあるファイルは NFC であってくれると平和で助かる。 追

    Mac OS X の NFD 問題での対策諸々 - Qiita
  • Dingbat - Wikipedia

    This article is about the typesetter's ornament. For other uses, see Dingbat (disambiguation). This article contains Unicode emoticons or emojis. Without proper rendering support, you may see question marks, boxes, or other symbols instead of the intended characters. Poem typeset with generous use of decorative dingbats around the edges (1880s). Dingbats are not part of the text. In typography, a

    Dingbat - Wikipedia
  • Regional indicator symbol - Wikipedia

    The regional indicator symbols are a set of 26 alphabetic Unicode characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2 two-letter country codes in a way that allows optional special treatment. These were defined by October 2010 as part of the Unicode 6.0 support for emoji, as an alternative to encoding separate characters for each country flag. Although they can be displayed as Roman

  • JIS X 0213のコード対応表

    JIS X 0213とUnicodeの対応表 JIS X 0213の符号化方式とUnicode (ISO/IEC 10646 UCS)との対応表 (変換表) です。 機械可読なタブ区切りテキスト形式です。 自由に使用・配布・改変等していただけます。 Shift_JIS-2004とUnicodeの対応表 文字付き版: Shift_JIS-2004 / UTF-8 EUC-JIS-2004とUnicodeの対応表 文字付き版: EUC-JIS-2004 / UTF-8 ISO-2022-JP-2004とUnicodeの対応表 JIS X 0213:2004 漢字7ビット符号とUnicodeの対応表 JIS X 0213:2004 漢字8ビット符号とUnicodeの対応表 これらの表は、「JIS-UCS 変換表」にあるJIS X 0213:2000ベースの変換表を元にして、2004年改正を反映さ

  • 文字列を反転させたい|nona

    こんにちは。徒然なるままにTweetを眺めていたら、Tanakaさんがこのようなことを呟いていました。 そういやRustのStringにreverseメソッドないなと思ったけど、まあよく考えたらUTF-8で文字逆転させるとか地獄のような話になるしそもそも長さが変わるケースとかあったりしそうで怖いわな・・・(´・_・`) — Hideyuki Tanaka (@tanakh) May 1, 2021 背景等はよくわからないですが、文字列の反転というのは確かに難しい問題ですし、どう難しいのかというのを、ちょっと真面目に考えて解説してみました。というノートです。 文での表記についてこれから文字とそのバイト表現の話をしていきます。文字のエンコードの方式で同じ数値でも色々意味が分かれてしまいますので、文では以下のように表記することにします。 Unicodeコードポイント(以下、単にコードポイント

    文字列を反転させたい|nona
  • Unicodeのgrapheme cluster (書記素クラスタ) | hydroculのメモ

    Unicodeのgrapheme cluster (書記素クラスタ) 2015/10/25 Unicodeテキストを1文字ずつ分割するアルゴリズムをUnicodeの仕様として定められており、grapheme cluster (書記素クラスタ)と呼ばれる。 普通はUnicodeのコードポイント1つずつ文字が割り当てられているので、ほとんどはコードポイント1つが1文字になるのだが、たまにコードポイント2つ以上で1文字になるものもあり、 1文字ずつテキストを分解するのは意外と複雑なルールになる。 Grapheme cluster について書かれている公式のドキュメントは以下にある。 Unicode® Standard Annex #29 UNICODE TEXT SEGMENTATION http://unicode.org/reports/tr29/ この記事は公式ドキュメントを読んで理解した

  • UAX #29: Unicode Text Segmentation

    Summary This annex describes guidelines for determining default segmentation boundaries between certain significant text elements: grapheme clusters (“user-perceived characters”), words, and sentences. For line boundaries, see [UAX14] . Status This document has been reviewed by Unicode members and other interested parties, and has been approved for publication by the Unicode Consortium. This is a

    rikuba
    rikuba 2021/05/03
    “3 Grapheme Cluster Boundaries”
  • Ruby M17N の設計と実装

    はじめに 多言語化概論 M17N とは L10N I18N M17N I18N 等の語源 UCS Normalization と CSI UCS Normalization 方式 Perl’s case (UTF-8) Java’s case (UTF-16) Mosh’s case (UTF-32) TRON’s case (TRON コード) CSI 方式 Ruby M17N の概念 CSI 方式 String がエンコーディングを持つ Script Encoding Magic Comment 外部エンコーディングと内部エンコーディング default_external と default_internal Command Line option -E と -U ロケールエンコーディング ファイルシステムエンコーディング Windows の場合 Unix 系の場合 Mac OS X

  • 1