- 1 名前:デフォルトの名無しさん [03/09/10 16:04]
- 文字コード変換について語りましょう♪
- 2 名前:.NET Messenger Service mailto:messenger@microsoft.com [03/09/10 16:06]
- お使いの Messenger は、今すぐセキュリティ アップデートが必要です。messenger.msn.co.jp/Help/Upgrades.aspx に移動して、アップグレードしてください。
- 3 名前:デフォルトの名無しさん mailto:sage [03/09/10 16:07]
- MSゴシックからTerminalへの変換アツゴリズムを教えて下さい。
- 4 名前:デフォルトの名無しさん [03/09/10 16:13]
- VC6環境でエディットボックス等から取得した文字列をUTF-8に変換するシンプルな方法教えて
- 5 名前:デフォルトの名無しさん mailto:sage [03/09/10 16:15]
- 単発質問の為にスレ立てるな
- 6 名前:デフォルトの名無しさん mailto:sage [03/09/10 16:17]
- UTF-8からPOP3に変換する方法を教えて
- 7 名前:デフォルトの名無しさん mailto:sage [03/09/10 16:20]
- かろやかに市ね
- 8 名前:デフォルトの名無しさん mailto:sage [03/09/10 16:24]
- 何語れって?
しかもUTF-8⇔SJIS限定かよ!
- 9 名前:デフォルトの名無しさん mailto:sage [03/09/10 16:26]
- WideCharToMultiByte
- 10 名前:デフォルトの名無しさん mailto:sage [03/09/10 16:28]
- MultiByteToWideChar
- 11 名前:デフォルトの名無しさん [03/09/10 16:34]
- 良スレのヨカン。
- 12 名前:デフォルトの名無しさん mailto:sage [03/09/10 16:36]
- UTF-8⇔SJISに限定せんほうがいいな
- 13 名前:デフォルトの名無しさん mailto:sage [03/09/10 16:50]
- そういえば、UTF-16は全然普及しないな。
- 14 名前:デフォルトの名無しさん mailto:sage [03/09/10 17:21]
- UltraTinkoFlash
SuperJapneseIiSio
- 15 名前:デフォルトの名無しさん mailto:sage [03/09/10 17:52]
- てか、普通の変換はもうすでにプログラミングしているので
どうせなら、機種依存文字とかやってみない? 例えば @は、0Xad0xa1(euc_jp) 0xe20x910xa0(utf8)
- 16 名前:デフォルトの名無しさん mailto:sage [03/09/10 18:55]
- 定番のレスですまないが、まず「機種依存文字」という用語の、皆が納得できる定義から頼む。
- 17 名前:デフォルトの名無しさん mailto:sage [03/09/10 18:56]
- じゃあたとえば、機種依存文字の場合
テーブル自作するとしよう 上の例だと EUC_JPのファイルをバイト単位で読み込んだとき AD A1っていうのがあれば、 UTF-8に変換する場合 E2 91 A0に書き換えればいいって事になる こういう辞書を作ればいいのか? こんな具合に EUC_JP、ISO-2022-JP、MS932、Shift_JIS、UTF-8の辞書テーブル作れば解決だよな
- 18 名前:デフォルトの名無しさん mailto:sage [03/09/10 18:59]
- >>16
たとえばi-mode文字とか
- 19 名前:デフォルトの名無しさん mailto:sage [03/09/10 19:00]
- UNICODEへのマッピングが未定義の文字をUNICODEにマッピングしようという話か?
- 20 名前:デフォルトの名無しさん mailto:sage [03/09/10 19:02]
- >>18
つまり標準規格化されてないベンダ独自定義の文字? それだと「@」とかは当てはまらないし、他のコードに変換もできそうにないけど。
- 21 名前:デフォルトの名無しさん mailto:sage [03/09/10 19:18]
- まあ詳しい話は俺は知らないんだが
たとえばJavaなんかでも簡単に文字コード指定してやれば どんな文字コードのファイルも任意の文字コードのファイルとして変換できる。 ただ、普通に使う文字とかは漢字(一部例外)だろうと記号だろうと大体OKなんだけど マッピングが割り当てられてない文字は?ってなるだろ。 そういうのを、正しく修正するようなテーブルをつくればいいのではないかと思ってな。 明らかにそのコードに存在しない文字はしょうがないけど
- 22 名前:デフォルトの名無しさん mailto:sage [03/09/10 19:27]
- >21
ヴァカですか?
- 23 名前:デフォルトの名無しさん mailto:sage [03/09/10 19:46]
- つーか、JIS系(ISO-20022-JP, Shift_JIS, EUC-JP, ...)とUnicode系(UTF-8, UCS-2, ...)
の変換は機種依存文字でなくても変換表使うしかないわけだが。
- 24 名前: [03/09/10 19:57]
- >>13
UCS16 はかなり使われてるのにね。
- 25 名前:●のテストカキコ中 mailto:sage [03/09/10 19:59]
- ula2ch.muvc.net/ (このカキコは削除しても良いです)
- 26 名前:デフォルトの名無しさん mailto:sage [03/09/10 20:03]
- >>23
その変換表をプログラムから使えるようにしようって事でないの?
- 27 名前:デフォルトの名無しさん [03/09/10 20:18]
- >>16
機種依存文字とは 『日本において技術者が喜んで実装し、 営業がユーザを囲い込むために喜んで利用する ちょっとだけ見た目のいい文字集合セットの名称』
- 28 名前:デフォルトの名無しさん mailto:sage [03/09/10 20:22]
- apex.wind.co.jp/tetsuro/izonmoji/
たとえば、Macintosh文字の機種依存文字として 丸付き数字や「cm」「↑↓」などがある。(「」内が一文字)
- 29 名前:デフォルトの名無しさん mailto:sage [03/09/10 20:31]
- >>28 【機種依存文字】特定機種にのみ存在する文字のこと
この定義じゃ不充分だし。英語版のOSじゃ日本語全滅ですよ?
- 30 名前:デフォルトの名無しさん mailto:sage [03/09/10 20:38]
- 「機種依存文字」なんて存在しないことがわからないのはなんでだろう。
- 31 名前:デフォルトの名無しさん mailto:sage [03/09/10 20:40]
- >>30
別にそんな細かいこといいじゃん ネタすれなのにマジになるなよ
- 32 名前:デフォルトの名無しさん mailto:sage [03/09/10 22:12]
- 来いよ
- 33 名前:デフォルトの名無しさん mailto:sage [03/09/10 23:16]
- Unicode はクソ。
- 34 名前:デフォルトの名無しさん mailto:sage [03/09/10 23:21]
- クソじゃない文字コードって何よ?
- 35 名前:デフォルトの名無しさん mailto:sage [03/09/11 00:13]
- 7bit ascii
- 36 名前:デフォルトの名無しさん [03/09/11 10:35]
- Unicodeの功績:
文字コードを1つ増やしてプログラマの雇用を創出したこと Unicodeの罪: 文字コードを1つ増やして右翼・左翼の声を大きくしたこと
- 37 名前:デフォルトの名無しさん mailto:sage [03/09/11 12:34]
- 7bit ascii はクソ、アラビア文字が表現できない。
- 38 名前:デフォルトの名無しさん mailto:sage [03/09/11 14:30]
- UTF-16のメリットをひとつ述べよ
- 39 名前:デフォルトの名無しさん mailto:sage [03/09/11 15:23]
- >>38
固定長 ……あ、でもサロゲートペアが…………
- 40 名前:デフォルトの名無しさん mailto:sage [03/09/11 15:39]
- >>38
中途半端で実用的
- 41 名前:デフォルトの名無しさん mailto:sage [03/09/11 17:41]
- サロゲートを使わないと表現できない文字を使ってるのは人間じゃないから
サロゲートの事なんか考えなくてもいいんだって学校の先生がいってたよ
- 42 名前:デフォルトの名無しさん mailto:sage [03/09/11 23:02]
- >>39
固定長なのはUCS2。
- 43 名前:デフォルトの名無しさん mailto:sage [03/09/11 23:28]
- >>37
ま、7 bit ascii が今の文字コード問題の元凶だという意味では激しくクソだな。 - はハイフンなのかマイナスなのか (いまは「ハイフンマイナス」だっつーことになった。何だよそれは) ~ はチルダなのかオーバーラインなのか (規格に tilde or overline とか書くなよ…) " の左右くらい区別しろ ...
- 44 名前:デフォルトの名無しさん mailto:sage [03/09/12 00:14]
- >>43
昔はそんなもの厳密に区別しなくても困らなかったんだよ。 それよりリソースの制限のほうが深刻だった。 で、それらを「包摂分離」したことによって非互換が発生した
- 45 名前:デフォルトの名無しさん mailto:sage [03/09/12 00:17]
- タイプライタなんて l と 1、 O と O を包摂していた。
- 46 名前:デフォルトの名無しさん mailto:sage却下されたのは知ってる [03/09/12 00:24]
- >>41
クリンゴン人ですね
- 47 名前:デフォルトの名無しさん mailto:sage [03/09/12 22:47]
- >>46
残念ながらクリンゴン語は却下されてUnicodeに含まれてないはずだよ
- 48 名前:デフォルトの名無しさん mailto:sage [03/09/12 23:23]
- >47
>46のメール欄
- 49 名前:47 mailto:sage [03/09/12 23:57]
- ぐは。やられた。
- 50 名前:デフォルトの名無しさん mailto:sage [03/09/13 14:04]
- プッ
- 51 名前:デフォルトの名無しさん [03/09/13 17:04]
- 初心者ですがよろしいでしょうか?
Java上でSJIS→UNICODE→SJISと変換をかけると、 115区〜119区は「?」になってしまうようなんですが、 仕方がないんでしょうか? 実際にUNICODEで割り当てられている文字もあります。 例えば人名の「高」のはしごタイプのやつです。これは 118区にあり、SJISではFBFC、Unicodeでは9AD9です。 IBM特殊文字なのはわかりますが、コードが存在するのに エンコードしてくれないのは何故でしょうか?
- 52 名前:デフォルトの名無しさん mailto:sage [03/09/13 17:15]
- >>51
Windows-31J エンコーディングを使用したか?
- 53 名前:デフォルトの名無しさん mailto:sage [03/09/13 17:35]
- >>52
使ってるのはShift_JISです。 Windows-31JってMS932のことでしたっけ? 試してみます。
- 54 名前:デフォルトの名無しさん [03/09/13 17:55]
- 必読ページ
www.ingrid.org/java/i18n/encoding/
- 55 名前:デフォルトの名無しさん mailto:sage [03/09/13 19:16]
- >>53
Windows-31Jでやってみました。が、ダメでした。 しかしおかげさまで問題を切り分けることができました。 どうやら途中に使っているJDBCドライバの問題っぽいです。 そっち方面検証してみます。お騒がせしました。
- 56 名前:デフォルトの名無しさん mailto:sage [03/09/13 20:27]
- データベースがEUCだったりするとたいがいうまくいかないね。
SJIS => UNICODE -> EUC -> UNICODE => SJIS 途中で、変換できないコードが混じっちゃう。 最近は、データベースの文字コードはできるだけUNICODEにしている。 それができないときは、SJIS。 JavaのWebアプリの場合だけど。
- 57 名前:デフォルトの名無しさん mailto:sage [03/09/14 01:00]
- データーベースがUnicodeじゃないとIEのsize属性での長さチェックと
うまくかみ合わなかったり どのみちサーバ側でチェックをする必要はあるんだけどなんか嫌
- 58 名前:デフォルトの名無しさん [03/11/03 22:37]
- ICU使ってます?
- 59 名前:デフォルトの名無しさん [03/11/03 22:42]
- 使ってます
- 60 名前:デフォルトの名無しさん [03/11/03 22:59]
- 日本語でUnicodeならUTF-8よりUCS-2そのままのほうがかえって
メモリ消費少なくなったしせえへん?CJK共用漢字コード領域に UTF-8の3バイト文字あったっけ?
- 61 名前:デフォルトの名無しさん mailto:sage [03/11/03 23:50]
- >>60
たしかにUTF-8だと漢字や記号の一部、半角カナ類は全部3バイトだね。 でも、日本語だけならいいんだけど、ASCII文字も扱いたい場合は UCS-2の16ビット表現はASCII部分の文字も2バイトになっちゃうからねぇ。
- 62 名前:デフォルトの名無しさん mailto:sage [03/11/04 01:31]
- >>13
XMLの標準がUTF-8でさらに、 欧米人は本当はIS-8859-1しか使う気がなく Unicode使ってもせいぜいUTF-8しか使わんのでしょう。 欧米系以外の外国人も英語を標準言語としており、 プログラミングなどの才には変数名などは英字のほうがわかりやすく 扱いやすくASCIIコードで事足りる記号が多いので、 無理してUTF-16を使う気を起こす人が少ないのでしょう。 まさに自分もこれに当てはまります。
- 63 名前:デフォルトの名無しさん mailto:sage [03/11/04 02:46]
- >>62
> 欧米人は本当はIS-8859-1しか使う気がなく そんだったら、WinもMacもUnicodeサポートしてないんじゃないの? 逆に、超漢字は、BMPしかサポートしてないというお粗末感がある。 ちなみに、Unicode Consortiumは、アメリカにあるよ。 ISO-8859-1はヨーロッパじゃあもう使いたくないでしょう。 Euroが入ってないと。
- 64 名前:デフォルトの名無しさん mailto:sage [03/11/04 05:17]
- 最近じゃ代わりに ISO-8859-15 を使うとかどうとか。<euro
プログラム言語では内部コードが UTF-16 てのも珍しくないけど。
- 65 名前:デフォルトの名無しさん [03/11/22 19:59]
- ICUのDLLがでかすぎるのだがUnicodeと日本語関係の文字コードに限定したサブセット版って誰かビルドして配布してくれてたりしないのかなあ
- 66 名前:デフォルトの名無しさん [03/11/22 20:07]
- >>65
集中治療室?
- 67 名前:デフォルトの名無しさん mailto:sage [03/11/22 20:34]
- >>63
非英語圏は英語圏産のソフトウェアの輸出先だからね。 日本が輸入最大手。
- 68 名前:デフォルトの名無しさん mailto:sage [03/11/22 22:14]
- UTF-8って内部処理には最悪なんだって。
文字列の末尾から先頭に向かって文字を検索できないだろ。 UNIX系のgccでは標準ライブラリは一文字四バイト固定のwchar_tだし、 MSVCは二バイト固定のwchar_tなんだよね。
- 69 名前:デフォルトの名無しさん mailto:sage [03/11/22 22:40]
- 可変長なものが内部処理には向かないのはあたりまえ。
- 70 名前:デフォルトの名無しさん mailto:sage [03/11/22 22:46]
- >>68
wchar_tはワイド文字なんだからutf-8でないのは当然なので、 wchar_tがutf-8でないことはutf-8を否定する理由にならない。 あと、末尾から先頭に向かって検索しづらい(できないわけじゃない)のは utf-8に限った話ではない上、あるシステムが文字列を末尾から検索する 必要があるとも限らないし、それ以外のメリットとデメリットも色々ある。 もっと勉強して出直してきて。
- 71 名前:デフォルトの名無しさん mailto:sage [03/11/23 23:19]
- コード順でソートすると一部言語が混ざるのが不味い
- 72 名前:デフォルトの名無しさん mailto:sage [03/11/24 17:41]
- >>68
> 文字列の末尾から先頭に向かって文字を検索できないだろ。 ハァ? そりゃシフトJISやEUCの話だ。 どこのバカにそんなデタラメ吹き込まれた? >>70 UTF-8は単なるバイト列として末尾からでも検索できるはずだが。
- 73 名前:デフォルトの名無しさん mailto:sage [03/11/24 17:56]
- >>72
>>70はできないとは書いてないけど? 可変長だから末尾から「文字として」検索するのはちょっとややこしめ、という程度の意味で書いた。
- 74 名前:デフォルトの名無しさん mailto:sage [03/11/24 19:32]
- >>73
UTF-8のエンコード方式を理解してないだろ?
- 75 名前:デフォルトの名無しさん mailto:sage [03/11/24 21:25]
- > 「文字として」検索する
必要がないのがUTF-8の特長なんだが。 どーでもいーけどこの程度の初歩的な知識もないくせに 知ったかぶってUnicode叩く奴大杉
- 76 名前:デフォルトの名無しさん mailto:sage [03/11/24 21:30]
- まあUnicodeはクソだし。
- 77 名前:デフォルトの名無しさん mailto:sage [03/11/24 21:52]
- で、そういう奴に限って何がどう糞なのか説明しない。
たまに説明したかと思ったら>>68みたいな単なる嘘だったりするし。
- 78 名前:デフォルトの名無しさん mailto:sage [03/11/24 21:58]
- 16ビットにおさめようと思って作っていた時点で糞です。
糞に何をかぶせようと糞にかわりはありません。
- 79 名前:デフォルトの名無しさん mailto:sage [03/11/24 22:17]
- それじゃあたった8,836文字に収めようとしたJIS X 0208や
シフトJISの都合だけで11,280文字に詰め込もうとしたJIS X 0213なんて 話になりませんね。やはり時代はちょー漢字ですか?
- 80 名前:デフォルトの名無しさん mailto:sage [03/11/24 22:17]
- Unicodeも糞だがJISも糞だ。
それを弁えて何とかするのがエンジニアだろ? 糞だ何だと言い訳する暇あったら調べるなり なんなり、もっと悪足掻きしろよ。
- 81 名前:デフォルトの名無しさん mailto:sage [03/11/24 22:18]
- で、悪あがきした結果がちょー感じ?
- 82 名前:デフォルトの名無しさん mailto:sage [03/11/24 22:41]
- むしろ悪あがきした結果はExtension BやOpenTypeの字形切り換えや
language tagやvariation selectorではないかい 漏れが理解できないのは、いくらUnicodeが糞でもシフトJISよりは マシだと思ってるんだが(理由は>>72や>>79)なんでシフトJISから 移行するだけでもあんなに拒否反応示す奴が多いの? ってあたり。 そいつが超漢字に移行しようっていうならまだ話も分かるんだが。
- 83 名前:デフォルトの名無しさん mailto:sage [03/11/28 22:27]
- 今まで使っていた物が使えないから。
- 84 名前:デフォルトの名無しさん mailto:sage [03/12/01 00:30]
- 捨てませう。
- 85 名前:デフォルトの名無しさん mailto:sage [03/12/04 23:27]
- 大昔のことで忘れたが、UTF-8って、
ビットテストすれば何バイト目が分かる仕様じゃなかったっけ?
- 86 名前:デフォルトの名無しさん mailto:sage [03/12/05 11:18]
- ・1オクテット文字か
・マルチオクテット文字の先頭オクテットか ・マルチオクテット文字の後続オクテットか が分かる。 マルチオクテット文字の何オクテット目かは、先頭かどうか以外は分からない。
- 87 名前:デフォルトの名無しさん mailto:sage [03/12/05 13:31]
- 先頭オクテットに関しては
・何オクテット文字の先頭か もわかるはず。 00-7F 1オクテット文字 80-BF 後続オクテット C2-DF 2オクテット文字の先頭 E0-EF 3オクテット文字の先頭 F0-F7 4オクテット文字の先頭 ※C0-C1とF5-FDはRFC3629で使用禁止になった
- 88 名前:デフォルトの名無しさん mailto:sage [03/12/05 16:00]
- さんきぅ
単位はオクテットの方がよかったね(これまた大昔に指摘されたことだな) ま、どっちにしてもシリアライズ向きか Perlのutf8って、どのくらい使えるんだろう
- 89 名前:デフォルトの名無しさん mailto:sage [03/12/05 18:31]
- >>88
hyam.dip.jp/hiroshi/comp/perl/perl58.htm > foreach $name ( < * > ) > でファイル名やディレクトリ名の "機能"を拾えない。 が5.8.1でも直ってないのでまだJPerlの置き換えはできまへん
- 90 名前:デフォルトの名無しさん [03/12/13 02:43]
- UNICODE 良く判らん・・・。UCS がキャラクタセットで、UTF がエンコーディング
なんだよね? UCS もキャラクタコードを持ってるという点ではエンコーディングと 考えてもいいの? 実際、Java や CLISP は内部的には UCS-2 で文字列を保持している みたいだし。サロゲートペアとか考えなくてよくなるから、内部エンコーディングに 向いているのでしょうか? UTF-8 が多いのは ASCII が使えれば十分な人が多いから? 各言語/ライブラリの内部エンコーディング/string のエンコーディング Python: UTF-8? Java: UCS-2/UTF-8 Tcl: UTF-8 Cocoa(Mac OS X): UTF-16 CLISP: UCS-2 Gauche: compile option dependent Qt: UTF-8 Mule: has it's own encoding XML: UTF-8 or UTF-16 自分で多言語対応文字列処理ライブラリを作る時は、UCS-2 を使うのが良いのでしょうか?
- 91 名前:デフォルトの名無しさん mailto:sage [03/12/13 02:50]
- とりあえずPythonはUCS-2だとだけ言っておく。
- 92 名前:デフォルトの名無しさん mailto:sage [03/12/13 02:52]
- thanx!
やっぱり固定長が便利って事だよね。
- 93 名前:デフォルトの名無しさん mailto:sage [03/12/13 02:54]
- std::basic_string<wchar_t>
linux-gcc:glibc(UCS4)/mingw32-gcc:msvcrt(UCS2) ワイドキャラクタは、テンプレートを使えば ロジックはそのままで型の導出の定義を替えて再コンパイルのみ。 インターフェースが変わるだけで上流工程に影響しない。 マルチバイトはロジックにパッチを当てなきゃならんので 論理のチェックもやり直し。
- 94 名前:デフォルトの名無しさん mailto:sage [03/12/13 03:38]
- ttp://homepage1.nifty.com/nomenclator/unicode/
- 95 名前:デフォルトの名無しさん mailto:sage [03/12/13 06:14]
- >UTF-8 が多いのは ASCII が使えれば十分な人が多いから?
USC2は情報量が足りないからサロゲートせなあかん、面倒 UCS4は無駄が多い なによりUCSはstrcmpレベルから書き直さんとあかんよ
- 96 名前:デフォルトの名無しさん mailto:sage [03/12/13 06:21]
- JIS X 0213はUCSだと固定長ではすまないわけだが
(サロゲートを無視しても合成もある)
- 97 名前:デフォルトの名無しさん mailto:sage [03/12/13 11:07]
- >なによりUCSはstrcmpレベルから書き直さんとあかんよ
そんな必要ない。 // char *m = itoa<char, int>(100) // char *w = itoa<wchar_t, long>(1234L) template <typename C, typename I> std::basic_string<C> itoa(I v, int radix = 10, bool caps = false) { std::basic_string<C> buff; C ch; C af = (caps ? 'A' : 'a'); do { ch = C(v % I(radix)); ch = ((ch > 9) ? (ch - C(10) + af) : (ch + C('0'))); buff += ch; v /= I(radix); } while (v); std::reverse(buff.begin(), buff.end()); return buff; }
- 98 名前:デフォルトの名無しさん mailto:sage [03/12/13 11:20]
- >97
型が混じってるぞ。 I r = v % I(radix); C ch = (r >= I(10))? (af + (r - I(10)) : (C('0') + r); ってところか。
- 99 名前:デフォルトの名無しさん mailto:sage [03/12/13 11:31]
- >>97
その調子で今まで作られた文字列処理関数すべてを書き換えてみて。
- 100 名前:デフォルトの名無しさん mailto:sage [03/12/13 11:42]
- >>99
つーか、作るまでも無く実はSTL+BOOSTなら大抵あるだろ。 boost::format(L"%5.3f:%3d") % 12.3 % 123 漏れも公開するかな。UCSはラクチンだよ。
- 101 名前:デフォルトの名無しさん mailto:sage [03/12/13 13:35]
- ところで内部コードがUTF-8って何かまずいことあるん?
UCS-2でも(OSによっては)出力する時点で変換しないとならないし 大して利便性は変わらないと思うんだが。 表現方法がいくつもあるほうが逆にやりづらいというかサポートするのが面倒。
|

|