タグ

文字コードに関するmfhamのブックマーク (33)

  • String#encodeが変換できそうで変換できない文字 - ネットの海の片隅で

    問題 RubyUTF-8からWindows-31J(Shift_JIS)に文字コードを変換すると、正常に変換できそうであるにもかかわらず、実際には変換が行えず例外が投げられる文字があります。 "\u{301C}" # => "〜" "\u{301C}".encode(Encoding::Windows_31J) # => Encoding::UndefinedConversionError: U+301C from UTF-8 to Windows-31J 原因 原因については UTF-8 → cp932(Shift_JIS)変換表 - fudist あたりがわかりやすいです。 例外が投げられる文字はたとえば以下の様なものがあります。*1 文字コード(UTF-8) 文字 備考 U+00A2 ¢ セント記号(通貨) U+00A3 £ ポンド記号(通貨) U+00AC ¬ NOT記号 U+2

    String#encodeが変換できそうで変換できない文字 - ネットの海の片隅で
  • JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io

    Intro textarea などに入力された文字数を、 JS で数えたい場合がある。 ここで .length を数えるだけではダメな理由は、文字コードや JS の内部表現の話を理解する必要がある。 多言語や絵文字対応なども踏まえた上で、どう処理するべきなのか。 それ自体は枯れた話題ではあるが、近年 ECMAScript に追加された機能などを交えて解説する。 なお、文字コードの仕組みを詳解すること自体が目的では無いため、 BOM, UCS-2, Endian, 歴史的経緯など、この手の話題につき物な話の一部は省くこととする。 1 文字とは何か Unicode は全ての文字に ID を振ることを目的としている。 例えば 😭 (loudly crying face) なら 0x1F62D だ。 1 つの文字に 1 つの ID が割り当てられているのだから、文字の数を数える場合は、この ID

    JavaScript における文字コードと「文字数」の数え方 | blog.jxck.io
  • Character Sets

    Last Updated 2022-07-14 Available Formats XML HTML Plain text Registry included below Character Sets Registration Procedure(s) Expert Review Expert(s) Martin Dürst Reference [RFC2978] Note These are the official names for character sets that may be used in the Internet and may be referred to in Internet documentation. These names are expressed in ANSI_X3.4-1968 which is commonly called US-ASCII or

  • UTF-8からSJISに文字化けすると糸偏の漢字がよく出てくる - Qiita

    はじめに Twitterで、文字化けネタを幾つかつぶやきました。 サッちゃんはね サチコっていうんだ ほんとはね だけど ちっちゃいから 自分のこと SJISで 保存するんだよ おかしいな 繧オ繝ちゃん — ロボ太 (@kaityo256) 2017年10月10日 「私 魔女のキキです。こっちはSJISの繧ク繧ク」 — ロボ太 (@kaityo256) 2018年1月6日 UTF-8「もしかして…」 SJIS「私達…」 「「入れ替わ縺縺ヲ繧九≦縲懶シ†」」 — ロボ太 (@kaityo256) 2018年2月13日 どれもUTF-8で保存された文字をSJISとして解釈したための文字化けを表現したものですが、パッと見で「糸偏の漢字が多いな」ということがわかるかと思います。なぜそうなるかを簡単に説明してみようと思います。 なお、文字コードはいろいろ面倒なので、ここではざっくりとしたことしか言い

    UTF-8からSJISに文字化けすると糸偏の漢字がよく出てくる - Qiita
  • 「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記

    自分の知らないCJK Ideographのバリエーションがまだあったことに戦慄している pic.twitter.com/kUlyRLDDTM— moriyoshit (@moriyoshit) March 9, 2017 などというツイートをしたところ、思ったより反響があったのでまとめておく。 上記ではあいまいに「バリエーション」などと書いたが、Unicodeとそれを扱う環境においては、バリエーションと一口に言っても次のような状況がある。 意味論的に等価な異なる字形の集合 同じ字形で異なるコードポイントの集合 aは結構なじみ深いと思う。 a-1. 異なるコードポイントにそれぞれ異なる字形が割り当てられているもの 例: 「東」(U+6771) ⇔「东」(U+4E1C) 「斉」(U+6589) ⇔「齊」(U+9F4A) 「高」(U+9AD8) ⇔「髙」(U+9AD9) a-2. 同じコードポイ

    「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記
  • MySQL で utf8 と utf8mb4 の混在で起きること - tmtms のメモ

    MySQLUTF-8 で使おうと思ってハマりがちなのは charset utf8 を指定してしまうことです。 MySQLUTF-8 には歴史的事情により utf8 と utf8mb4 の二つあります。 UTF-8 は1バイト〜4バイトで1文字が構成される文字コードですが、MySQL の utf8 は4バイト文字を扱うことができません。ハマりたくなければ utf8mb4 を使いましょう。 utf8 を使ってしまった場合に4バイト文字がどのように扱われるか、自分でもうろ覚えだったのでメモしておきます。 登録 接続が utf8mb4 でカラムが utf8mb4 あたりまえですが、そのまま登録されます。 mysql> insert into utf8mb4 (c) values ('美味しい🍣と🍺'); mysql> select * from utf8mb4; +--------

    MySQL で utf8 と utf8mb4 の混在で起きること - tmtms のメモ
  • 文字コード地獄秘話 第1話:Unicodeにおける全角・半角 - ALBERT Engineering Blog

    ごあいさつ 皆様はじめまして、文字コードおじさんです。細々とカメラ屋を営んでおりましたが、エンジニアとしての技量を評価され、ALBERTのシステム開発・コンサルティング部で働くことを許されました。特技はサーバーの統廃合です。 今回は最初ということですが、Unicodeにおける全角・半角の取り扱いについて触れてみようと思います。なお、さも連載するかのように第1話と銘打っていますが、上層部の無慈悲な裁決によっては1話打ち切りもありえますので、その際はご容赦ください。 固定観念を捨てよう 「全角50文字、半角100文字まで」といったような文言を見かけたことがあると思います。 特にUnicode以前のレガシーな処理系では全角文字に2バイト、それ以外は1バイトという割り当てが慣習となっていました。 このため、「全角=2バイト文字、半角=1バイト文字」という観念が世間に定着しているのが現状です。 しか

    文字コード地獄秘話 第1話:Unicodeにおける全角・半角 - ALBERT Engineering Blog
  • はてなブログ

    出雲大社までヒッチハイク旅したら自己発見できた[出雲大社ヒッチハイク体験記/前編] ふとした思いつきから内省と思索の旅へ。神奈川から出雲大社までのヒッチハイクで、予期せぬ自己発見を経験した4泊5日の記録。 はじめに - 旅の動機 - 10年友達関係が続いて、昨年頭から1年間付き合った恋人と年末に別れた。 失恋の詳細はどうでもいいので省く。付き合…

    はてなブログ
  • 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
  • module NKF

    [edit] 要約 nkf(Network Kanji code conversion Filter, https://osdn.net/projects/nkf/) を Ruby から使うためのモジュールです。 使い方 以下は、漢字コード変換コマンドの例です。 例 #!/usr/local/bin/ruby require 'nkf' opt = '' opt = ARGV.shift if ARGV[0][0] == ?- while line = ARGF.gets print NKF.nkf(opt, line) end 以下は、漢字コード判別コマンドの例です。 例 #!/usr/local/bin/ruby require 'nkf' CODES = { NKF::JIS => "JIS", NKF::EUC => "EUC", NKF::SJIS => "SJIS", NKF:

  • moji 日本語の文字種判定、文字種変換(半角→全角、ひらがな→カタカナなど)を行います。

    Moji モジュール 日語の文字種判定、文字種変換(半角→全角、ひらがな→カタカナなど)を行います。 インストール: 以下のコマンドを実行してください。 $ sudo gem install moji 使い方: Ruby 1.8: $KCODE を指定してから require "moji" してください。 Moji モジュールの関数に渡す文字列の文字コードは $KCODE と一致させてください。 Ruby 1.9: どの文字コードの文字列を渡しても大丈夫ですが、 String#encoding が正しく設定されている 必要があります。正規表現を返す関数( Moji.kata など)は Encoding.default_internal (設定されてない場合はUTF-8)用の正規表現を返します。その他のエンコーディング用の正規表現は Moji.kata(Encoding::SJIS) など

  • 第2回 文字コードを変換するプログラム - かんたん10分プログラミング:ITpro

    プログラミング言語にはRubyWindows版)を使用します。Rubyデビューにもってこいの小さなサンプルです。最近ほどよく枯れてきたRubyの雰囲気をお楽しみください。なお,Windows用のRuby処理系はいくつかあります。例えば,ActiveScriptRubyなどをダウンロードしてセットアップしてください。以降はRubyがインストール済みという前提で話を進めていきます。 文字コードを変換してファイルに保存 サンプルは,元となるテキスト・ファイルからシフトJIS(以下SJIS),EUC,JIS,UTF-8に文字コードをコンバートしたテキスト・ファイルを生成するプログラムです。 実際,ソフト開発をしていると文字コードを制御する場面に結構遭遇しますよね。HTMLを作成する場合はもちろんのこと,RSSを作成する場合(UTF-8),LinuxなどとマルチOS環境で開発を行う場合(UTF-8

    第2回 文字コードを変換するプログラム - かんたん10分プログラミング:ITpro
  • Character Sets

    このウェブサイトは販売用です! studyinghttp.net は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、studyinghttp.netが全てとなります。あなたがお探しの内容が見つかることを願っています!

  • Rubyでinvalidなバイト列を含むUTF-8文字列を扱う - yarbの日記

    Ruby 1.9系ではStringオブジェクトにエンコーディング情報が付加されていて、マルチバイトや複数エンコーディングを扱う日人としては嬉しい限りだけど、時々エンコーディング関連で例外が発生して落ちすぎるぐらい落ちるように感じるときがある。ちょっとイラッと来るけど、考えてみたら、例外を出さずに処理を進めてしまうことの弊害のほうが大きいだろうから、これはありがたいこと。 外部のHTMLを読み込んで正規表現でマッチするコードで、次のようなエラーが出た。 invalid byte sequence in UTF-8これは文字通り、UTF-8的におかしなシーケンスがあるということ。問題のHTMLを調べてみたら、UTF-8HTMLの中に、Shift_JISが混じってしまっていた。どうも、JavaScriptで突っ込んだ文字列らしい……。いかにもありそうなことだ。どの程度の頻度で世の中にそういう

    Rubyでinvalidなバイト列を含むUTF-8文字列を扱う - yarbの日記
  • 正規表現:すべて全角カタカナかどうか調べる - phpspot

    mb_eregを使う際には、mb_regex_encoding()関数で正規表現内で使う文字エンコーディングを指定して下さい。 <?php mb_regex_encoding("eucjp-win"); // EUCの例 $str = "テストタロウ"; if (mb_ereg("^[ア-ン゛゜ァ-ォャ-ョー「」、]+$", $str)) { echo "すべて全角カタカナである"; } else { echo "すべて全角カタカナではない"; } ?> <?php function is_katakana($text) { if (mb_ereg("^[ア-ン゛゜ァ-ォャ-ョー「」、]+$",$text)) { return TRUE; } else { return FALSE; } } ?>

  • MySQL 文字化けを防ぐ、文字コードの確認と設定

    MySQL 文字化けを防ぐ、文字コードの確認と設定 2007.01.15 MySQL 文字化けを防ぐために、文字コードの確認と設定を行う。 ■現在の文字コードの設定を調べる mysql> show variables like 'character_set%'; または、 mysql> status ■データベースの文字コード設定を調べる データベースごとに文字コードを設定できるので、現在の文字コードを調べる。 (テーブルごとではなく、データベースごと) mysql> show create database データベース名; 文字コードを指定してデータベースを作るには、 mysql> create databaase xxxdb default character set utf8; ■テーブルの文字コード設定を調べる テーブルごとに文字コードを設定できるので、現在の文字コードを調べる。

    MySQL 文字化けを防ぐ、文字コードの確認と設定
  • UTF8 -&gt; JIS(ISO-2022-JP)変換(完成コード)

    2008年02月(9) 2008年01月(9) 2007年12月(19) 2007年11月(19) 2007年10月(24) 2007年09月(12) 2007年08月(21) 2007年07月(14) 2007年06月(15) 2007年05月(16) 2007年04月(14) 2007年03月(27) 結局こんな形に。 もちろん半分はパクリ。 下半分はよくある人名漢字。 function replaceText ( $str ) { $arr = array( "\xE2\x85\xA0" => "I", "\xE2\x85\xA1" => "II", "\xE2\x85\xA2" => "III", "\xE2\x85\xA3" => "IV", "\xE2\x85\xA4" => "V", "\xE2\x85\xA5" => "VI", "\xE2\x85\xA6" => "VII

    UTF8 -&gt; JIS(ISO-2022-JP)変換(完成コード)
  • Encode 日本語などのマルチバイト文字列を適切に処理する - Perl入門〜サンプルコードによるPerl入門〜

    Perl › モジュール › here 日語などのマルチバイト文字をPerlで適切に扱うにはEncodeモジュールを使用します。次の3つのことを覚えておけば多くの場合適切に日語を扱うことができます。 外部から入力された文字列はEncodeモジュールのdecode関数でデコードする 外部へ出力する文字列はEncodeモジュールのencode関数でエンコードする ソースコードはUTF-8で保存しutf8プラグマを有効にする この解説での用語 この解説では外部から入力された文字列のことを「バイト文字列」と呼ぶことにします。Perlの内部表現に変換された文字列を「内部文字列」と呼ぶことにします。また「バイト文字列」が特定の文字コードで記述されている場合は「UTF-8バイト文字列」「Shift_JISバイト文字列」などと呼ぶことにします。 プログラミングで日語を扱う場合にその文字列がバイト文字

    Encode 日本語などのマルチバイト文字列を適切に処理する - Perl入門〜サンプルコードによるPerl入門〜
  • Utf 8 manipulation

  • シフトJISのデータを読み取るには?[WP 8]

    Windows Phone 8では、Win32 APIを利用してシフトJISのバイト列データをUnicode文字列に変換できるようになった。TIPSでは、その実装方法を説明する。 連載目次 前回、Windows Phone 8(以降、WP 8)では「GetEncoding("Shift-JIS")」というコードが動かず、シフトJISのデータを読み取れないと書いた。WP 7.xまでは実際にどうしようもなく、シフトJISでエンコードされたデータを読み取るには自前で変換テーブルを実装するしかなかった。だが、WP 8からはWin32 APIを利用してシフトJISのデータをUnicodeに変換することが可能になっている。稿では、WP 8でWin32 APIを使う方法と、シフトJISをUnicodeに変換するコードを紹介する。稿のサンプルは「Windows Store app samples:M

    シフトJISのデータを読み取るには?[WP 8]