X



文字コード総合スレ Part12
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2018/12/16(日) 12:38:15.61ID:VlX3xGEw
Windows NTは初代からUnicodeがネイティブの文字コードです。cp932ではありません。
プログラマーなら一度は煩わされたことのある文字コードについてのスレ。
UTF-8、Shift_JIS、JIS、EUC、Unicode、UCS、サロゲートペア、コードポイント、文字コード判定、
合成文字、ソート、TRON、外字コード、その他について語り合いましょう。
各言語での文字列の扱いについての質問もOKです。
基本マッターリ、ささ、茶でもどうぞ。

■過去スレ
文字コード総合スレ part1 http://pc11.2ch.net/test/read.cgi/tech/1031028205/
文字コード総合スレ part2 http://pc11.2ch.net/test/read.cgi/tech/1143375639/
文字コード総合スレ part3 http://pc11.2ch.net/test/read.cgi/tech/1180250376/
文字コード総合スレ part4 http://pc11.2ch.net/test/read.cgi/tech/1228052369/
 (スレ再利用)UnicodeとUTF-8の違いは? http://pc12.2ch.net/test/read.cgi/tech/1177930957/
 (隔離スレ)UnicodeとUTF-8の違いは? その2 http://pc12.2ch.net/test/read.cgi/tech/1274937437/
文字コード総合スレ part5 http://pc12.2ch.net/test/read.cgi/tech/1236529563/
文字コード総合スレ part6 http://hibari.2ch.net/test/read.cgi/tech/1278923059/
文字コード総合スレ part7 http://toro.2ch.net/test/read.cgi/tech/1306595564/
文字コード総合スレ part8 http://peace.2ch.net/test/read.cgi/tech/1354248962/
文字コード総合スレ part9 http://peace.2ch.net/test/read.cgi/tech/1401301779/
文字コード総合スレ Part10 http://mevius.2ch.net/test/read.cgi/tech/1444822140/
文字コード総合スレ Part11 https://mevius.5ch.net/test/read.cgi/tech/1516629503/
0003デフォルトの名無しさん
垢版 |
2018/12/16(日) 12:45:08.07ID:VlX3xGEw
■これまでに行われた議論
・Windows 10のコマンドプロンプトでUTF-8を使用する場合chcp 65001で切替可能。日本語入力等も可
・Shift JIS や EUC-JP や Big5 や GB なんかをUnicode に変換してしまうと、ラウンドトリップは保証されるか
・単一情報をソースの文字コード(or 言語)情報なしに元に戻したい (統計的に文字の出現確率なんかを調べる)
・0x5cをUnicodeにするときにバックスラッシュに置き換えるか円マークに置き換えるかで、逆変換時に結果が変わるの問題
・丸付き数字は機種依存文字か?。Unicodeでは機種依存文字ではない。
・Safari文字コード変換のバグは
・Microsoft文字コード変換のバグは
・U+31F0..U+31FF(アイヌ語表記用小書きカタカナ)が入ってない件
・文字化けに強いishフォーマットでエロ画像を交換する場合、ssより、s7のほうが化けにくい
・SJISとUNICODEの判別はどのようにすればいいですか?BOM。無ければ、統計判断。 ライブラリを使うが吉
・ところでケータイのUnicode対応度って実際どうよ? → 対応済み
・TwitterのWebインターフェイスからだと、サロゲートペアは2文字としてカウント。140字打てない 。
・Unicode 5.2で追加されたUnicodeSMP(第1面)、Unicode 5.1で未定義だったSMPのコードポイントや第15、第16面が
 Windows7では表示されない。 → 和田研細丸ゴシック2004ARIBはARIB外字を含んでいる。
・元号を安置する場所はJIS第三で確保済み。ウニコードでブロックを確保は政治力次第。
・元号は個人名ではない。特定の時間軸基準に数える年号を漢字で指す文字。
 陛下の崩御後必ずしも元号が追号になるわけではない。むしろ違う場合が多い。昭和54年法律43号の元号法参照。
・文末でなければ"0"+ASCII7ビット、文末なら"1"+ASCII7ビットというエンコード。 → ヌル1バイトが貴重な時代からの負の遺産。
・Windows7出荷時に未定義だったコードポイントはフォント入れても豆腐になる。Unicode5.2は表示しない。欝だ。
・Unicode6ドラフトでPILE_OF_POO文字確定。ウニコードがもはやイミフ。SerifとSans-Serifで幅に違いは出る?
・Unicodeのzipが文字化けする。→Windows 7は公式パッチで対応可能。8以降は標準対応
0004デフォルトの名無しさん
垢版 |
2018/12/16(日) 12:46:00.56ID:VlX3xGEw
・中国語の簡体字では、へんやつくりが簡略化されるなら、その文字も自動的に簡略化して表記する国家規格が有る
・中国語の「噁心」簡化政策によると「恶(U+6076)」に統一。口偏+恶(U+6076)は普通に使われているがUnicodeにはない
・日本人のニーズが満たせないのも確かなので原規格分離(中国では「曾→曽」は簡体字と繁体字の違いとはみなされていないとか)
・UNICODEを扱うプログラムはサロゲートをぶったぎられた入力が渡されてくる場合にも備えろって→YES
・UnicodeとUTF-8の違いは?
・日本のCJK Ext.D Submissionに{魚針}が含まれてる件
 U+9C75(魚箴)は強烈。いくら何でも違いすぎる。(魚針)
 ひょっとしたら後で実は別字だったとか日本では異体字だが中国では別字とかになるかも知れんぞ。
 中国ではってレベルじゃねーぞ。
・Unicodeは言語情報を直接扱わない。 多言語の混在表現は(unicodeでは)できないか
・Unicode文字列リストを各国言語を考慮してソートしたいんですが → ムリです。
・Unicodeサニタイズが面倒になるのか
0005デフォルトの名無しさん
垢版 |
2018/12/16(日) 12:46:16.07ID:VlX3xGEw
もうひとつの過去スレ:
文字コード統一スレ 1文字目
http://pc8.2ch.net/test/read.cgi/tech/1109171258/

隔離スレ:
UnicodeとUTF-8の違いは?
http://pc12.2ch.net/test/read.cgi/tech/1177930957/
UnicodeとUTF-8の違いは? その2
http://hibari.2ch.net/test/read.cgi/tech/1274937437/
UnicodeとUTF-8の違いは? その2
http://toro.2ch.net/test/read.cgi/tech/1291075205/
UnicodeとUTF-8の違い4(インディアン隔離スレ)
http://toro.2ch.net/test/read.cgi/tech/1342963035/
0007デフォルトの名無しさん
垢版 |
2018/12/16(日) 12:49:13.25ID:VlX3xGEw
■単語一覧
・UTF-16は16ビット単位にエンコードするけど、サロゲートペアがある
 表現できる文字空間はUTF-8と同じく20ビットとちょっと
・丸付き数字は機種依存文字か?MSIME2007ではCP932に収録されてない文字は「環境依存文字」って表示。
 MacJapaneseではフォントによっては表示されないし、フォントによっては表示される。
今のMac(内部Unicodeアプリ)は、フォント依存ではなくアプリ依存。
似非ISO-2022-JPや似非Shift_JISのドキュメント中の丸付き数字は、
素直にAppleのAPIを使ってるアプリならゲタ(U+FFFD)になる。
・Mail.appではISO-2022-JPに収まらずCP932に収まるメールは、含まれる字種によって
 charset=CP932で送信される場合とISO-2022-JP(もどき)で送信される場合がある
・MSでのウニコードとSJIS変換のバグ。
 U+007E TILDE <-> Shift_JIS 0x7E OVERLINE
 U+301C WAVE DASH -> Shift_JIS NA 【MSの問題】
 U+FF5E FULLWIDTH TILDE <-> Shift_JIS 0x8160 WAVE DASH 【MSの問題】
・SafariでのウニコードとSJIS変換のバグ。
 U+007E TILDE -> Shift_JIS 0x8160 WAVE DASH 【Safariの問題】
 U+301C WAVE DASH <-> Shift_JIS 0x8160 WAVE DASH
 U+FF5E FULLWIDTH TILDE <-> Shift_JIS NA
・winzipの規格ではファイル名のコードページ指定もしくは記録情報が存在しない。
 解決策:取り合えず、MSWin+JPではShift-jisでファイル自体には保存されている。
 MACOSX=Unicode,Unix=UTF/EUC/S-JISどれでもありえる。文字に関係なくLocalLangで
 再変換しているので、それをしなければよい。
・charlenでの文字列長の判定はプラットフォームにより返り値が違う(機種依存文字等)。マニュアル嫁。
・JISのエスケープシーケンスが正しく認識されない本文とか。
 '0x1b, 0x24, 0x42' という3バイトを先頭に、'0x1b, 0x28, 0x42' を末尾に追加汁。
 あるいはhttp://masaka.dw.land.to/mr/jmr.phpとか。
0008デフォルトの名無しさん
垢版 |
2018/12/16(日) 17:19:29.50ID:0LUE4AGb
oo|o|o|||o|o|o|o|||ooo|oo|o|ooooo||o||o|oooo|||o||||o|oo|o|||o|o|o|o|o|oo
ooo||o|o|||||||o|o||oo|ooo||ooo|o||oooo|oo|o||oo|||ooo||||oo||ooooo||oo||
oo||ooo|o||o||ooooo|oo|oo|o|o|||o|||||o|o|oo||oo|ooo||o||||o|o||o||o|oooo
ooo|||||o|oo|||ooo|o|oo|||||ooooooooooo|||ooo|||o||||oo|oo|||ooo|o||oo|||
ooooo|ooo||o|oo|||oooo|oo|||||ooooo||o|||oo|||o|o|o|o||||o|||||oo|oo|oo|o
||o|oo||oooooo||o|oo||o|||ooo||oo||oo||ooo|o|o|oo|||||o|o|o|||oooooo|o|||
||o||||o|oo|||o||oo||ooo|ooo|oo|||oo|o|||o|||oo|oo|oo|o|||||oooo||ooooooo
oo|oo|||||oo|||||o|oo|o||oo|||o|ooo||o|oo|||o||ooooooooo|ooooo|o|||o||o||
o|oo|o||o|oo|oo|oo|o|o|o|oo|o||||oo|oo||ooo|ooooo||||o|oo|oo|||o|||oo||||
|o||||o|||oo|o||o||oo||oooo|oo|o||oooo|oo|||||||oo|o|o|ooo|oooo||||ooo|oo
ooooo|||oo||oo|o||o|ooooooo||||||o|o||o|o|ooo||oo||o||oooo||oo|oo|||o||||
|o|||oo||o||o|o|||o||oooo|oo|||o||oo|ooooo|o|||o|||oo|ooo|ooo|||oo||oo|oo
||ooo|||ooo|||o|ooooo||||oo|||||oo||ooo|o||o||ooo|oo||oo|oo|||o|o|o|oooo|
|||oo|o||o||o|ooooooooo|o|o|||||oo|o||ooo|o||o|oo||||oo|o||o||o|ooo|||ooo
oooo|||ooooo||o||oo|ooo|||||o|oo|||o||o||ooo|ooo||oo||oo||o||o|oo|o|oo|||
oooooo||||oo|o||oo|||o|ooooo||ooo||||||oooo|||||oo||||ooo|||o|o|o|o||oooo
o|o|o|oo|o|oooo|o|ooo||oo|oo||||||||ooo|o||o||oo||o|||ooo|o||oo||oo||oo|o
oo||||oooooo|o||o|o|oooo||o|||oo|ooo|o|o|o|ooo||o|o|oo|o|||o|o|o|||o||o||
oo|oooo|oo|o|oo||||oo|||o||o|o||o||o|oooo|o||||o|o||o|ooooo||ooo||||||ooo
oo||o|oo||||oo|||||||||ooo|oo|||oo||oooo||o|o|o||||ooooooooo|oo|||oo|oo|o
o|o|||||o|o|||oo|oo|o|||o|o|||oo|oo||ooo|oo|oo||oooo||||o||||ooooooo||ooo
o|||||oo|o|||oo|ooooo|ooooo||o||oo||ooo||||oo|oooo||||oo|oooo||oo|o||||||
|oo|oo|||||oooooo||||ooo|||||ooo|oo|o|||oo|o|o|||o||ooo||ooo|o|oo|||o|ooo
ooooo|o|oo||o||||oo||oo|o|ooo||o|o|o|||ooo||||||o||oo|ooo||o|o||oo|o||ooo
|oo|ooooo||o||o|o|oo|oo|||ooo||||o|oo|oo|o||||o|oo|||o||o|||||ooooo|o|ooo
|o||ooooooo|||oo|ooo|ooo||||ooo||oo||ooo|||||||ooo|o|ooooo|||||o|o|o|||o|
0009デフォルトの名無しさん
垢版 |
2018/12/16(日) 21:10:16.93ID:3q5iKhWM
こんなスレあったんだ
Windowsのフォントって、どのフォントがどのコード体系とか字体を使っている。
などを纏めているところってある??
0012デフォルトの名無しさん
垢版 |
2018/12/17(月) 21:18:18.25ID:lO+98ZHR
あげ
0014デフォルトの名無しさん
垢版 |
2018/12/18(火) 11:22:36.98ID:/M0/bFGF
>やはり頭悪いのはunicodeと符号化を混同してる

ここは同意

>2つ以上のオクテットを使う符号単位で
>BOM入れないヤツは池沼だからな

これは嘘
0015デフォルトの名無しさん
垢版 |
2018/12/19(水) 00:20:13.76ID:jOXn0Ht9
低学歴知恵遅れには
エンディアンの概念がないのが
よおく分かったわ
0016デフォルトの名無しさん
垢版 |
2018/12/19(水) 00:28:37.33ID:t+yG2AJO
CPUの内部形式とデータには何の関係もない
現にネットワークデータはCPUとは無関係の並びになってる
0018デフォルトの名無しさん
垢版 |
2018/12/19(水) 00:57:03.62ID:jOXn0Ht9
うわあ。。。
マジでいってんの

こういうマジもんの低学歴がこの板で
はば利かせてるのがよく分かるわ

マジで頭悪いことを
ハジもなくなんの躊躇もなくいうからな

プログラムで
いちいエンディアン変換してんのすら
しらないらしいわ

当然Unicodeのエンコード方法にも
ビッグエディアンとリトルエンディアンがある
0019デフォルトの名無しさん
垢版 |
2018/12/19(水) 00:58:18.75ID:jOXn0Ht9
もうね低学歴すぎてヤバイって
ちなみネットワークでデータを交換するときは
暗黙で基本はビッグエンディアンになってる

常識だからなコレ
0020デフォルトの名無しさん
垢版 |
2018/12/19(水) 01:00:17.18ID:jOXn0Ht9
低学歴知恵遅れって
なんでものすごい頭悪いことを
自信満々にいうわけ?
0021デフォルトの名無しさん
垢版 |
2018/12/19(水) 01:12:57.34ID:jOXn0Ht9
ちなみipアドレスの並びはビックエンディアンになってる
ポート番号も当然ビックエンディアンになってる

ソケット通信のプログラム組んだことあるなら
ポート番号設定するのにhtons(コレはオクテット2つになる)という関数を使ったことあるハズだ

ちなみにこの関数はリトルエンディアンの計算機なら
ビッグエンディアンに変換された値がかえってくる

ビッグエンディアンの計算機なら
そのままビッグエンディアンの値がかえってくる
0023デフォルトの名無しさん
垢版 |
2018/12/19(水) 06:24:21.16ID:wJcYDzdz
最近の子はバイトオーダーなんて意識しないからな
常識としては知っててほしいがけど
低レベルな処理書かなきゃ関係ないし触れることもないだろうから知らなくても困らんな
アラインメントとかパディングとかも同様
0025デフォルトの名無しさん
垢版 |
2018/12/19(水) 16:46:27.07ID:R6d6JT/9
>>23
バイトオーダーを意識する機会が減ったのは、xmlやjsonなどテキスト形式でデータ受け渡しすることが多くなったから。
テキスト形式ならバイトオーダーを意識せずに済むし、スクリプト言語で扱うのにも便利。
0027 ◆QZaw55cn4c
垢版 |
2018/12/19(水) 20:51:34.30ID:C9bIO99C
>>24
豆知識、endian とは?
もともとは、卵を丸い方の端 (big end) から割る人々(Big Endians)と尖った方の端から割る人々 (Little Endians) との対立を表したものだった
0029デフォルトの名無しさん
垢版 |
2018/12/20(木) 03:36:13.08ID:Epiz8Tj2
バイトオーダーやアラインメントは、C/C++以外の言語でバイナリデータを使おうとした時に強く意識することになる。
C/C++で開発している時はコンパイラが自動的に配置・取得してくれるデータを、スクリプト言語では自力でオフセット調整して配置・取得しなければならない。
C/C++より簡単なことが長所だったはずのC#・Java・Perl・Python言語などで、低レベルなオフセット調節を自力で行う必要に迫られる皮肉な状況が起きる。
0030デフォルトの名無しさん
垢版 |
2018/12/20(木) 04:20:27.30ID:ojhJ7lIE
> バイトオーダーやアラインメントは、C/C++以外の言語でバイナリデータを使おうとした時に強く意識することになる。
C/C++言語以外ではライブラリが処理してしまうんで意識しないかな
C/C++ライブラリを呼び出すライブラリを作るときは意識するだろうけど、
それって結局C/C++言語で書くんで、あれ?意識するのはC/C++かw
0031デフォルトの名無しさん
垢版 |
2018/12/20(木) 06:53:32.14ID:Epiz8Tj2
>>30
例えばWindows環境だと、C/C++以外の言語でWin32API関数を固有の構造体を入出力に使う場合、アセンブリ並みに低レベルなオフセット調節を自力で行う必要に迫られる。
0032デフォルトの名無しさん
垢版 |
2018/12/20(木) 07:18:15.99ID:ojhJ7lIE
× 例えばWindows環境だと、C/C++以外の言語でWin32API関数を固有の構造体を入出力に使う場合、アセンブリ並みに低レベルなオフセット調節を自力で行う必要に迫られる。
○ 例えばWindows環境だと、C/C++以外の言語でWin32API関数を固有の構造体を入出力に使う場合、C/C++並みに低レベルなオフセット調節を自力で行う必要に迫られる。
0033 ◆QZaw55cn4c
垢版 |
2018/12/20(木) 07:37:44.12ID:W1ypdRwu
>>32
うーん、具体的な win32api 名(だけでいいです)を例示してください.
0035デフォルトの名無しさん
垢版 |
2018/12/20(木) 08:04:20.01ID:Epiz8Tj2
>>32
勝手に書き換えないでもらいたい。
C/C++だと構造体の各メンバ変数のアラインメントを意識しなくていいが、他の言語だとそうはいかないので、アセンブリと同じようなオフセット調節が必要。
SendMessage(WM_COPYDATA)の送受信データの読み書きなど例はいくらでもある。
0036デフォルトの名無しさん
垢版 |
2018/12/20(木) 10:08:25.12ID:48mnxvPx
>>35
>C/C++だと構造体の各メンバ変数のアラインメントを意識しなくていいが

誰に騙された?
0037デフォルトの名無しさん
垢版 |
2018/12/20(木) 13:46:21.36ID:P4Rv6f7s
実行メモリ上はともかく
ファイルやネットワークストリームでLEにするアホいるんか?
0038デフォルトの名無しさん
垢版 |
2018/12/20(木) 16:58:53.93ID:Epiz8Tj2
エンディアンもさることながら32/64bit整数の幅調節が厄介。
使っている言語が32/64bitどちら向けでビルドされたものなのかによって構造体メンバのアラインメントを適切に処理する必要が出てくる。
言い換えれば、C/C++で作った構造体をバイト列で渡し、C/C++以外の言語でバイト列を構造体に復元する処理が厄介。
単に構造体の64bit整数メンバだけ気を付けるのではダメで、構造体の全メンバのアラインメントそのものが大きく変わりうることに注意する必要がある。
0039デフォルトの名無しさん
垢版 |
2018/12/20(木) 18:26:27.50ID:6OEKrw3R
いや、だからさ、その程度までは理解できてるのに、何故「C/C++だと構造体の各メンバ変数のアラインメントを意識しなくていいが」なんてことを言っちゃうの?
それとアラインメントの話とバイトオーダーの話を混同しないように気を付けた方がいいよ。
0040デフォルトの名無しさん
垢版 |
2018/12/20(木) 19:07:05.38ID:oZOw2Nhk
C/C++しらないけど、魔法のようにアライメントを
勝手に調整してくれるんじゃないの?想像しただけで
0041デフォルトの名無しさん
垢版 |
2018/12/20(木) 21:19:19.38ID:/Up9dRku
Unicodeは普通にリトルエンディアンもありだ

なんで Byte Order Mark(BOM) がファイルの先頭に入ってるのか分かってない
Javaバイトコードのcafe babeみたいな飾りだと思ってんの

リトルエンディアンの計算機ばっかりがあるとこで
ビッグエンディアンでファイルを保存する理由なんかないからな

当然、そういったコンテンツデータがHTTPでも流れてくる
0042デフォルトの名無しさん
垢版 |
2018/12/20(木) 21:20:17.21ID:/Up9dRku
やっぱりこの板には
クルクルパーしかいない

そしてそのクルクルパーの声だけがでかい

やっぱりな低学歴知恵遅れは
この板から排除する必要がある
板が正常に機能しない
0043デフォルトの名無しさん
垢版 |
2018/12/20(木) 21:26:52.62ID:gpCj1726
アライメントはふつうコンパイラが適切に調整してくれるよね。
32/64bitで整数サイズの違いでメンバオフセットが変わるってのはアライメントとは別の話。
0044デフォルトの名無しさん
垢版 |
2018/12/20(木) 21:31:46.95ID:/Up9dRku
32bitなら
ちゃんと32bitに詰まるように
メンバの順序かえる
0045デフォルトの名無しさん
垢版 |
2018/12/20(木) 21:38:37.03ID:/Up9dRku
char unko
char foo
int aho
short poi
char baka
int manuke
short boo
char woo




int manuke
----
int aho
----
short poi
short boo
----
char unko
char foo
char baka
char woo


64bitでも考え方は同じ
強制パッキングのオプション使えるコンパイラもある
0046デフォルトの名無しさん
垢版 |
2018/12/20(木) 21:42:31.32ID:oZOw2Nhk
今問題としてるのはファイルの話だ。
32bitシステムで作られたファイルを64bitシステムに
持ってきたとしてもファイルの内容が変わるわけじゃない

つまりC/C++で32bitでint型で扱っていたからと言って
64bitでもint型で扱ってはいけないということだ
0047デフォルトの名無しさん
垢版 |
2018/12/20(木) 21:44:56.46ID:/Up9dRku
バカがよくやる誤りは
メモリ境界をまたぐ位置で64bit値を参照したりして
バスエラーを起こす


シリアライズデータを直に参照できると思ってるバカがあとをたたない
CISCの計算機しか使ったことないサル並の脳みそのヤツがよくやる
0048デフォルトの名無しさん
垢版 |
2018/12/20(木) 21:53:38.53ID:/Up9dRku
そんなファイル読み込むときに
普通にintなんか使わないからな
そんなことは低学歴知恵遅れしか発想できない


utf16なら16bit単位(uint16_t)
utf32なら32bit単位(uint16_t)
で読み込む

リトルエンディアンの計算機で
ビッグエンディアンのUnicode読む場合は
16bit単位なら16bit単位でオクテット列の並びを逆転させる
32bit単位なら32bit単位でオクテット列の並びを逆転させる

リトルエンディアンの計算機で
リトルエンディアンのファイル読み込むならオクテット列の並びを逆転させる必要はない

ビッグエンディアンならその逆になる

低学歴知恵遅れはこういった基本的な理解がない
0049デフォルトの名無しさん
垢版 |
2018/12/20(木) 21:59:01.65ID:gpCj1726
>>45
C/C++の規格じゃ構造体のメンバは宣言された順にアドレスが増加するよう並べられることになっている。
仮に>>45のような最適化を行うことができる処理系が存在したとしても、一般的と言えるものではない。
0051デフォルトの名無しさん
垢版 |
2018/12/20(木) 22:00:12.93ID:/Up9dRku
だからそう書いてる
手動で自分で並べ替える
0053デフォルトの名無しさん
垢版 |
2018/12/20(木) 22:23:36.55ID:tzmwAGAt
結局C/C++でもアライメント意識して、自分で適切な型を選択しているってわけさ
他の言語でも一緒。ただし型が違うからバイト数を指定するだけの話
0054デフォルトの名無しさん
垢版 |
2018/12/20(木) 23:02:54.77ID:Epiz8Tj2
PGならば、楽するためにJava/C#/Python/Perl/Rubyなどを使ってたはずなのに、C++よりめんどくさくなって心が折れそうになる経験を一度はしておいたほうがいい。
0056デフォルトの名無しさん
垢版 |
2018/12/20(木) 23:49:16.62ID:/Up9dRku
やはり低学歴知恵遅れには
C++はむり

レスみればよく分かる
レスから頭の悪さがにじみ出てる

低学歴のレスはすぐにわかるわ
残念なことに
0057デフォルトの名無しさん
垢版 |
2018/12/21(金) 12:36:36.76ID:C7PBMVlX
データのアラインメントはどんな言語を使うにしても気にする必要がある。
しかし、Windows が VisualC++ でビルドされていて、VisualC++
もしくは互換のアラインメントができる言語でアプリを組めば、
気にしなくてもよい、ということだけだろう。
0058デフォルトの名無しさん
垢版 |
2018/12/21(金) 14:56:12.53ID:wVAQd9sY
>>57
gcc も同じだよ。64bit版linux gccはwchar_tを16ビットにするか32ビットにするかを切り替えビルドできるからさらに厄介。
構造体を丸ごとダンプしたバイナリデータを同じOS上の別プロセスに渡すのは繊細な注意がいる。
0059デフォルトの名無しさん
垢版 |
2018/12/21(金) 16:01:10.01ID:2iFVCAc3
で、なんだっけ?バイナリファイルのデータが
16bitで格納されていようが32bitで格納されていようが
C/C++だったらアライメントを勝手に調整してくれるんだっけw
へー、勝手にねー、intで扱ってれば、勝手に調整してくれるんだーw
0060デフォルトの名無しさん
垢版 |
2018/12/21(金) 16:43:13.79ID:wVAQd9sY
intが16bitの組み込み向けプログラムであっても同じコンパイルオプションで作ったモジュール同士ならバイナリの復元はC言語の型キャストだけで可能。
構造体が仕様として公開されている場合、どの言語であれアラインメントを意識した実装が必要になるが、C言語は実装コストが最も低くなる傾向はある。
スクリプト言語を使う人がアラインメントを意識せずにすんでいるのは、ライブラリ実装した人が頑張ってくれた・くれているおかげ。
0061デフォルトの名無しさん
垢版 |
2018/12/21(金) 17:01:59.77ID:2iFVCAc3
一方他の言語では、指定したオフセットから何バイト読み込むか指定するだけなのであった
0063デフォルトの名無しさん
垢版 |
2018/12/21(金) 17:23:19.85ID:wVAQd9sY
>>61
先生。指定したオフセットから何バイト読み込むか指定する作業は、まさにアセンブラと同レベルの作業じゃありませんか。違いますか、先生。
0065デフォルトの名無しさん
垢版 |
2018/12/21(金) 18:13:53.48ID:ORTv1gtC
低学歴知恵遅れ先生はC/C++スレだけじゃなくてここにもくるようになったのか
0068デフォルトの名無しさん
垢版 |
2018/12/21(金) 23:50:03.63ID:j37Ohb1y
まず低学歴知恵遅れは
低学歴知恵遅れの自覚がないからな
0069デフォルトの名無しさん
垢版 |
2018/12/22(土) 11:38:13.24ID:boWDflNh
実行時に使用中のCPUがLEかBEかを判定するプログラムを
Cでサンプル欲しいのですがどこかにありますか?
0071デフォルトの名無しさん
垢版 |
2018/12/31(月) 08:52:03.67ID:Tj5kujd4
C1制御文字の<128>って多くの文字コードで「PAD」と名付けられているのに
UnicodeでのU+0080はxxxみたいに無名なのって理由ある?
0072デフォルトの名無しさん
垢版 |
2018/12/31(月) 13:29:33.60ID:8Z6ezMyM
U+0080,U+0081,U+0084,U+0099は、ISO6429/ECMA-48で制御文字に含まれていない
というか削除されてる
http://www.ecma-international.org/publications/standards/Ecma-048.htm
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-048.pdf

WikipediaソースによるとUnicode初期ドラフトにはU+0080も入っていたみたいなことも書かれてるね
https://en.wikipedia.org/wiki/C0_and_C1_control_codes#C1_set
0075デフォルトの名無しさん
垢版 |
2019/01/02(水) 00:20:17.09ID:R6tFufwf
エイプリルフールはまだだけど元号ネタとかあるだろうな
新元号『NEO平成』に決定みたいな
0077デフォルトの名無しさん
垢版 |
2019/01/02(水) 22:33:06.92ID:Fz1uszjs
新元号が分からなくてグリフが間に合わないからUnicode 12.1を出すってのは仕方ないけど
新元号の組字のためだけにAdobeJapan1を改訂するってのは馬鹿げてる
0079デフォルトの名無しさん
垢版 |
2019/01/03(木) 09:15:51.35ID:IESB6EpY
MS-DOS でのプログラミングではメモリ内の特定のバイトについて
文字の中の何バイト目かを 1 バイトずつ遡って調べるということも
あったようだけど自分ではそういうコードを書いた記憶がない。
いや、もしかしたらあったのかもしれないけど。
EUC-JP の場合は ASCII なバイトかシングルシフトが現れた時点で
確定するようだけど。Unicode の時代になって良かったね。
まあ、そんなようなことを今更思った。あけましておめでとう。
0081デフォルトの名無しさん
垢版 |
2019/01/04(金) 13:59:50.88ID:8DNHKlb4
あけおめ

>>79
大昔のことだけど、SJIS 文字列の末尾から検索するプログラム書いてた時は「SJIS、お前はマジで殺す」という気持ちで一杯でした。
もう二度とあんなことはやりたくない。
008279
垢版 |
2019/01/04(金) 17:36:17.24ID:opswFKCW
ありがとう、まさにそういうことです。
p=strchr( path,'\\'); /* おい *p 、お前は本当に '\\' なのか? 表とかじゃないのか? */
0084デフォルトの名無しさん
垢版 |
2019/01/04(金) 19:30:16.38ID:EMYjNY+E
UnicodeはSJISよりも扱いが複雑だけど
ライブラリが揃ってるからねー
一文字が1バイトだろうと3バイトだろうと
2文字で1文字を表していようが、簡単に一文字判定ができちゃう
0085デフォルトの名無しさん
垢版 |
2019/01/04(金) 21:30:36.38ID:atCGQoq2
複数コードポイントで1文字を表すのって上限って決まってないの?青天井?
0094デフォルトの名無しさん
垢版 |
2019/01/05(土) 00:07:24.29ID:41KVD0qa
Unicodeは1文字の概念も破綻しちゃったね
1文字に見えるやろ?でもこれは11文字なんや
全く意味がわからないw
0095デフォルトの名無しさん
垢版 |
2019/01/05(土) 00:11:16.35ID:41KVD0qa
見た目上の1文字は最大4バイト×11文字で44バイトなのかな?w
11文字ってのは今現在存在する最大が11文字ってだけで青天井?
もうライブラリ使ってないと無理だね
0096 ◆QZaw55cn4c
垢版 |
2019/01/05(土) 00:12:47.39ID:F8+3E8Pf
世の中にあるすべての文字をコード化してやる!
という意義には賛同していたんですけれども、(主に経済的理由により)絵文字が入った時点で失望してしまいました…

仕切りなおしたほうがいいんじゃないですか?
0097デフォルトの名無しさん
垢版 |
2019/01/05(土) 00:38:07.30ID:198zQJKz
仕切りなおしてもBCで絵文字は入ります。
というかもはや絵文字は世界中のスマホ/SNSユーザーに愛用されています。
ここまでくるともはや後戻りはできないのです。
0098デフォルトの名無しさん
垢版 |
2019/01/05(土) 00:46:41.68ID:fLBZxFEd
仕切りなおすどころかUnicodeの規格がさらに拡張されて状況悪化するんだろうなあ
Unicode12も来年・・・じゃないやもう今年リリースされる予定のはずだし
0100デフォルトの名無しさん
垢版 |
2019/01/05(土) 12:51:39.06ID:l3tIMYns
現代の文字は自然発生するわけでも王朝が発布するわけでもなくユニコードコンソーシアムが追加するのだ
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況