
はてなキーワード:文字コードとは
anond:20251226191933 に書くことも考えたが、長くなりすぎるので分割することにした。
なお、三大検索エンジン (Google・Yahoo・Bing・あとひとつは?) はDuckDuckGoとTwookuL以外の全ブラウザーで設定できる。楽天ウェブ検索でも設定できるが、楽天ウェブ検索の良さをつぶしてしまうことになるのでおすすめはできない。
以下は日本で使用した場合に表示される候補 (2025年12月現在 /iOS 26.2) になる。
Chrome →Google (デフォルト) /Yahoo!JAPAN /MicrosoftBing /DuckDuckGo / Ecosia
Ecosiaは検索数に応じて木が植えられるので、地球環境に貢献できる。
Safari →Google (デフォルト) /Yahoo /Bing /DuckDuckGo / Ecosia
Yahooの!がついていないのは表記をブラウザーにあわせているため。プライベートブラウズの検索エンジンを別々に設定できる。通常はGoogleで、プライベートブラウズのときだけBingかDuckDuckGoにするという選択も可能。
Edge →Bing (デフォルト) /Yahoo!JAPAN /Google /DuckDuckGo /百度 /Cốc Cốc
百度は中国、Cốc Cốcはベトナムの検索エンジン。なお、百度は日本での検索事業からは撤退しており (そのため中国の百度で検索される) 、現在は日本語入力アプリ (Simeji) の開発がメイン。
Brave →Yahoo!JAPAN (デフォルト) /Brave Search (プライベートタブのデフォルト) /Bing /DuckDuckGo /Google / Qwant / Startpage
Safariと同様プライベート検索を別に設定できる。Googleが一覧でかなり下の順位になっているのとプライバシー重視の検索エンジンが多数登録されているのが特徴的。
なお、一覧にない検索エンジンでも手動でURLを入力しての登録が可能。
Qwantはフランス、Startpageはオランダの検索エンジン。2つともEUにあるためGDPRの対象となり、すくなくともEUの法律にのっとったプライバシー保護は保障される。
ちなみにStartpageはStartMailというサービスも提供しており、月額料金はかかるがメールエイリアス (日本でいう捨てメアド) を無制限に作成できる (書かなかったけどSafariもiCloudを有料プランにすればメールを非公開という同等機能がつかえる) 。
楽天ウェブ検索 →楽天ウェブ検索 (デフォルト) /Google /Yahoo!JAPAN /MicrosoftBing /DuckDuckGo /百度
楽天ウェブ検索以外に設定すると、検索でポイントをためることができなくなり、このアプリのメリットがなくなってしまう。
Opera →Google (デフォルト) /Yandex /Baidu /Yahoo /Bing /DuckDuckGo /Amazon /eBay /IMDB /Wikipedia / Qwant
Yandexはロシアの検索エンジン。Baiduは上記でもたびたびでてきた百度の英語表記 (ちなみに日本語表記はバイドゥ) 。
ショッピングサイトとしてAmazonやeBayが登録されている。ちなみにeBayは日本ではQoo10というサービスを展開している。
IMDBは映画のデータベース。映画好きで英語ができる (英語表示のみなので / 内部的には日本語タイトルも登録されているため検索ワードの入力は日本語でも可能) ならばこれに設定するとよいだろう。
検索エンジンが元ということもあるが割り切った仕様である。とはいえ検索エンジンのほうが先だったのはGoogleもそうなのだが、Chromeでは上記のとおり検索エンジンの変更ができる。
ポルン →Google (デフォルト) /Yahoo!検索 /Yahoo!検索 きっず /Bing /DuckDuckGo /Baidu
Yahoo! きっずが登録されているのはめずらしい。不適切なサイトを可能なかぎり検索結果に表示したくないならあえて設定するのもあり?
ちなみにこのブラウザーは通常の検索のほかにスマート検索という機能があり、検索ワードを通常通り入力すると下に「Google」「YouTube」などのボタンも表示される。改行キーのかわりにボタンをおすと選択した検索エンジンを使用する。順番をならびかえてDuckDuckGo・Yandex・Bingも上位にすればメタ検索エンジン的なつかいかたもできる。
TwookuL →DuckDuckGo (デフォルト) /Bing /Google /Wikipedia /Amazon
DuckDuckGoがデフォルトなのは今回紹介したブラウザーのなかでは (DuckDuckGo以外) 唯一である。めずらしくYahooが選択肢にない。
Firefox →Bing /DuckDuckGo /Google (デフォルト) / Perplexity /Wikipedia (ja) /Yahoo!JAPAN /Yahoo!オークション /楽天市場
こんな順番でGoogleがデフォルト設定なのはおそらく文字コード順 (あいうえお順) だからだろう。メーカーの意図で順番を操作していないともいえる。Brave同様、どんな検索エンジンでも追加登録が可能。
Uvoice →Google (デフォルト) /Yahoo! /Bing
Arc Search → Browse for Me /Google (デフォルト) /Bing /DuckDuckGo / Ecosia / Perplexity / Kagi
Browse for Meは一番上であることからもわかるように、Arc Searchオリジナルの検索エンジンで、検索結果が生成AIによって作成される。どれに設定しても検索候補にある「Browse for Me」ボタンで使用できるが、デフォルトを変更すると改行キーでも使用できる。
Kagiは課金をして使用する検索エンジンで、無料サービスを維持するために必要な広告が表示されないのが特徴。もし広告にうんざりしているならば課金するとよさそう。
utf8の文字コードで構成されたバイナリーファイルがある。このファイルの改行の数を数えよ。改行はCRのみとする。このファイルにはCR が必ず含まれており、CRで分割すればマルチスレッドで処理できる。
size_t count_cr_in_file(conststd::string&path) {
std::ifstreamfs(path,std::ios::binary);
size_t size =fs.tellg();
fs.seekg(0);
const size_tthread_count =std::thread::hardware_concurrency();
const size_t chunk_size = size /thread_count;
std::vector<std::future<size_t>> futures;
for (size_t t = 0; t <thread_count; t++) {
size_t start = t * chunk_size;
size_t end = (t ==thread_count - 1 ? size : (t + 1) * chunk_size);
futures.push_back(std::async(std::launch::async, [start, end, &path]() {
std::ifstreamfs(path,std::ios::binary);
fs.seekg(start);
size_t count = 0;
for (size_t i = start; i < end; i++) {
char c;
if (c == '\r') count++;
}
return count;
}));
}
size_ttotal = 0;
for (auto& f : futures)total += f.get();
returntotal;
}
importmmap
mm =mmap.mmap(f.fileno(), 0,access=mmap.ACCESS_READ)
returnmm.count(b'\r')
c#で書けと指示したところ、
using System;
using System.IO;
using System.IO.MemoryMappedFiles;
{
public static long CountCRInFile(stringpath)
{
using varmmf = MemoryMappedFile.CreateFromFile(path, FileMode.Open, null);
using varaccessor =mmf.CreateViewAccessor(0, 0, MemoryMappedFileAccess.Read);
long fileSize =accessor.Capacity;
int processorCount = Environment.ProcessorCount;
long chunkSize = fileSize / processorCount;
longtotal = 0;
Parallel.For(0, processorCount, i =>
{
long start = i * chunkSize;
long end = (i == processorCount - 1) ? fileSize : (i + 1) * chunkSize;
long localCount = 0;
byte b;
for (longpos = start;pos < end;pos++)
{
if (b == 0x0D) //CR
localCount++;
}
lock (lockObj)
{
total += localCount;
}
});
returntotal;
}
{
long count = CountCRInFile(path);
Console.WriteLine($"CR count = {count}");
}
}
というコードが出てきた。
実際はcrlf,lfもあり得るんだが、そこは考慮しなくてもよく、そう考えるとaiはすごいとしか言いようがない。
なお、utf8として成立する単位で区切りつつ改行を数える場合、もう一工夫いる。
ちかごろチョイチョイ来る雑なサギスパムで、差出人名(From:ヘッダの表示名)が「警察?」って書いてあって笑っちゃったんだけどさー
コレホントに「?」クェスチョンマークなのか、いわゆる文字化けで存在しない文字コードだからなのか気になったので、AIに聞いてみたのよ。
「=?iso-2022-jp?B?GyRCN1k7IRsoQj8=?= をデコードしたらどんな文字列になりますか?」
軒並みみんな違うこと言ってんじゃんクソッタレども。ちゃんと「警察?」って文字列までデコードできたヤツが居ないww
雑なバカスパムについてはこちらanond:20251007203646
今のコンピューターとかインターネットが扱う文字の体系って漢字の文化を破壊してない?
文化の発展や新しい概念の登場に従って絶えず新しい文字が生み出されてきた歴史があると思うんだが
文字コードを割り振って文字のセットに収録するっていう今のやり方だとそこに新しい字が入る余地なくない?
アルファベットの場合使える文字は固定されてても言葉の意味はその文字の並びで表すから事実上無限に語を生み出せるけど
事実上、既存の漢字の組み合わせで熟語や合成語を作るということしか許されてないというか、言い換えれば「アルファベット的なやりかたで語を生み出す」ことのみ許されてる状態。
そもそも文字コードに収録される文字自体が「文字コードを作った時点の文化」で使われてる文字なわけで、その時点で文化が固定されてる側面あるよな。
「まったく新しい一文字」を生み出す表現力が殺されてるというか。
今のような状況で新しい漢字を生み出しても、「今の文字コードの文字」がアルファベットのようなスタンダードになってしまってて新しい字を広める術が絶望的にない。
アルファベットの場合はそれが可能なんだよ。そこの圧倒的な非対称性を問題にしたい。
文字コードの仕組み自体がアルファベットフレンドリーというかラテン文字ファーストな考え方なんだよな。
今のトレンドで文字コードに絵文字が収録さていってるのが救いかな?って気もするけど、まああれは文字コードのコンソーシアム的なとこが認めた文字だけ載る感じでちょうど昔の王様が漢字を決めてたみたいな雰囲気があって文化が生み出す漢字ってのとは微妙に違うきがする。
たとえば部首とつくりを組み合わせられるようにするとか、既存の漢字を部首やつくりみたいに配置できるとか、そういうことをするだけで全く違ってくると思うんだわ。
一応負荷は気にして、一度チェックしたのは再チェックしないようにはしてるけど、コメント数分のfetchはしてる以上、一定以上の負荷はあるよなぁ。
一応、コメント数だけのAPIもあるにはあったのだけど、それはドメインが異なっていてクロスドメインを解決しないといけないので、結構面倒くさそう。
もしかしたら、週末にでも挑戦してみるかも。
preタグは、調べてみたら、使えるは使えるけど「改行はbrタグにして、1行にする」必要があるっぽい。その上で、今は「大なり小なりの半角は書けない」っぽい?
一応はpreタグが使えるけれど、自分を完全に隠したいとかでなければ、正直ここまでして増田にコードは貼り付けないかなぁ。(URL開けばいいだけなので)
preタグの右側から文章開始。大なり全角>半角>小なり全角<半角<文字コード><。ここでbrタグ→
ここで改行→
ここで解除される。
公式資料には pine decoration と書いてあるがそこまで見ても何なのかよくわからんと思う。
煎餅🍘の絵文字をビルの向こうに見える月だと思っていた外国人の話も聞いたことがある。
UNICODE の策定の基本ルールとして「既存の文字コードにあるものは全部入れる」というものがある。
既存のデータをUNICODE に変換可能なようにしないと移行が進まないから。
あまり用途が無さそうなものが入ってるのは世界各国の文字コードの歴史的事情も含めて統合しようとしているから。
闝
読み方はヒョウと読むらしい。それにしても意味が女遊び・女性に溺れるって
を表してるらしい。なぜか機種依存文字だが、表示されない方が幸せなのカモ(´・ω・`)
https://kanji.jitenon.jp/kanjiy/28272
これに至っては表情すら出来ないが、なんだこの
ふざけた字は。門に工だと
小学生でもそんな発想しないぞ!
どうでもいいけどUnicodeはU+2B519
読み方はホウ、褒める称えるなどの意味らしい。
誰もが一度はやってみたい部首の間に部首入れたらどうなるんだ!をやってみた漢字。
こうやって見ると先人って案外バカなのかもしれない…
でもやっぱりこれが一番すき
Rubyではじめるシステムトレード (Modern Alchemists Series No. 121)単行本(ソフトカバー) –2014/5/20
坂本タクマ (著)
2014年出版のこの本に記載されているコードはRuby1.9.3で動作確認されているがRuby3.2.2環境でも動作する。標準ライブラリーのみを使用しておりgemコマンドで3rd partyライブラリのインストール無しで動作するコードであることが幸いして、文字コードをutf8に変換してやればmacOSSequoiaでもほとんどのコードが動作する。
macOSで動作しないのは、PanActive Market Databaseを利用して株価データを取得するコードだ。ActiveX(COM)はWindowsでないと動作しないからだ。
本書の第3部で記述されている事柄は今でも輝きを失っていない。株式市場の銘柄コード、時系列データを格納したデータベースをメンテナンスできる人にとっては第3部は自分で売買シミュレーションコードを書く手間を省いてくれるのだ。
2025年現在、有料の金融データプロバイダーが出現しているので(e.g. J-QuantsAPI, CQG)頑張ればデータベースの作成、日々のメンテナンスができる状況が生まれている。前者の月額料金は1,650円だ。
昔、とあるプログラミングの成果物のファイルを納品したとき、お客さんから「UTF-8で納品していただく約束でしたが、Shift-JISでした。正しいファイルをいただきたいです。」とクレームがはいった。
ご存じの通り、UTF-8、SHIFT-JIS、EUCはASCIIの文字コードは同じ、互換性がある。
言ってみれば、ASCII文字しか使っていなければ、どの文字コードでエンコードしても一緒だし、この場合エディタはどの文字コードなのかを判別はできないので推測で文字コードを決めることになる。
だから、こんな風に返事した
「本ファイルはASCII文字のみを使用しているため、UTF-8とShift-JISのいずれの文字コードでも正しく認識されます。ASCII文字は、UTF-8とShift-JISのどちらにおいても共通であり、文字コードによる違いはございません。そのため、お客様のエディタ上でShift-JISと表示された場合でも、UTF-8との互換性が保たれておりますので、ご安心ください。」
返事したんだが、帰ってきたのが
「うちのエディタではShift-JISと書かれております。互換性はあるかもしれませんが、正しく認識されるように再度おくってください」と
つまり『互換性があるということで怠けないで、問題がないにしても当初の通りエディタでUTF-8と識別されるファイルを送れ』って言われた。