「『生成AIを使ってこんなもの作ってみました』開発者LT大会」は、急速に発展しているChatGPTや生成AIといったAI技術を使って何かを作ってみた人たちがアイデアや成果を共有する、ログミーTech主催のイベントです。ここでPR TIMES社の土屋氏が登壇。「ChatGPTを使って文字コードを扱う負担を軽減できるか」という調査の内容と結果について紹介します。 Shun氏の自己紹介と、本セッションのアジェンダ Shun氏(以下、Shun):それでは、PR TIMES社の土屋が発表します。私の名前はShunといいます。PR TIMESに勤めていて、ソフトウェアエンジニアをやっています。 本日のアジェンダです。私の発表はどちらかというと、個人開発でChatGPTを使ったものを作って、それで実験をしてみたという内容になっております。 表題にもあるとおり、ChatGPTに文字コードのことを聞いてどん
UTF-8は今日の文字エンコーディングの中で最も重要なものと言って差し支えないでしょう。UTF-8の仕様はこの辺で確認できます: Unicode 15.1.0 > 3.9 UTF-8 RFC 3629 - UTF-8, a transformation format of ISO 10646 この記事では、読者はすでにUTF-8にある程度の馴染みがあるものとして、UTF-8のバリデーションの細かいところを考えます。 UTF-8のバリデーションを行うには、以下のことを確かめなければなりません: 最初の1バイトが所定の範囲にあること:ASCII (0x00-0x7F) または0xC2以上。 後続のバイト(たち)が0x80-0xBFの範囲にあること。 長すぎないこと:U+007F以下の文字はちょうど1バイトで表現されていること、U+0080以上U+07FF以下の文字はちょうど2バイトで表現されて
If you combine this with the Unicode table, you’ll see that English is encoded with 1 byte, Cyrillic, Latin European languages, Hebrew and Arabic need 2, and Chinese, Japanese, Korean, other Asian languages, and Emoji need 3 or 4. A few important points here: First, UTF-8 is byte-compatible with ASCII. The code points 0..127, the former ASCII, are encoded with one byte, and it’s the same exact byt
前回の概要編では、じっくりとGB18030-2022の表紙を見ながら、中国におけるGBの定義、GB18030規格改定の概要、製品への搭載義務などについて解説しました。今回は、いよいよ表紙をめくって更新された内容について詳しく解説していきます。 漢字はとにかく多いGB18030-2022の規格書の実物を見ると、まずその厚みに圧倒されるでしょう。700ページを超えるページをパラパラとめくってみてわかるのは、本文はわずか8ページ程度で、残りのほとんどは付属書である長い文字コード表ばかりです。 文字コードの国際標準としてISO/IEC 10646があります。そして業界規格のUnicodeとおおむね互換しています。一方でGB18030は中国独自の規格です。GB18030は策定当初から国際標準の存在を意識して設計され、膨大な量のコードポイント(符号位置)と、各文字コードを相互変換するための対応表を用意
PHP Advent Calendar 2023の18日目の記事です。 PHPカンファレンスに登壇した記録を書きたいと思います。数えてみますと、2009年から昨年(2022年)までのPHPカンファレンス14回と、北海道2回、関西1回の合計17回登壇したことになります。 最初の登壇は14年前ですので、私の考えも当時からは変化していますので、そのあたりも触れながら紹介していきたいと思います。 PHP カンファレンス 2009 最初の登壇は2009年のPHPカンファレンスでした。この年はビジネスデイとテックデイに分かれていまして、ビジネスデイで登壇依頼を頂きましたので、当時温めていた「ウェブサイトを発注する際のセキュリティ」についてお話しました。 スライドの中で「脅威分析やってもあまり意味ない」みたいな物騒な意見が書いてあります。当時はそのように考えていたわけですが、これは当時のサイトがECサイ
Copy and paste "🧑🌾" in your terminal emulator. How many cells forward did your cursor move? Depending on your terminal emulator, it may have moved 2, 4, 5, or 6 cells1. Yikes. This blog post describes why this happens and how terminal emulator and program authors can achieve consistent spacing for all characters. Character Grids, Historically Terminals operate on a grid of fixed size cells. Thi
Unicode絵文字で使われている仕組み、特に、複数の文字を組み合わせて1つの絵文字を組み立てる「Emoji Sequences」のことは意外と知られていないかもしれません。Unicode絵文字がどのように成り立っているか、ひととおり大雑把に紹介してみます。 例えば: ❤️🔥 (heart on fire) ← ❤️ + ZWJ + 🔥 ❤️🩹 (mending heart) ← ❤️ + ZWJ + 🩹 🏳️⚧️ (transgender flag) ← 🏳️ + ZWJ + ⚧️ 🏳️🌈 (rainbow flag) ← 🏳️ + ZWJ + 🌈 🏴☠️ (pirate flag) ← 🏴 + ZWJ + ☠️ 🐕🦺 (service dog) ← 🐕 + ZWJ + 🦺 🐈⬛ (black cat) ← 🐈 + ZWJ + ⬛ 🐦
PowerShellで文字化けが生じる場合がある 直接実行すると問題なく表示されるのに、PowerShellの変数に格納する、あるいはファイルに出力すると文字化けする外部コマンドがある。 具体的には、wsl.exeやwinget.exeなどだ。文字化けするのは、PowerShellの変数への格納や、cmd.exeでファイルにリダイレクトしたあと、変数やファイルを表示したときである。 先に結論から言えば、wsl.exeとwinget.exeの場合、標準出力にはバイトマークなしのUnicode(UTF-16LE)エンコードされた文字列が出力されているため、そのままでは文字化けしてしまう。 画面に出力したときに文字化けしない理由は、標準出力とは異なる方法で画面表示しているからだと思われる。ソースコードを調べたわけではないが、たとえば、コンソールAPIなどを使って画面出力しているのではないかと思わ
SwiftUIのTextビューで日本語を表示する際、意図しない箇所で改行が入ることがある。改行コードを使わずに改行位置を調整する方法を紹介する。 日本語テキストが不自然に改行される SwiftUIのTextビューで日本語を表示する時、意図しない箇所で改行が入ることがある。たとえば「あなたに寄り添う究極のイノベーション」というフレーズが、「あなたに寄り添う\n究極のイノベーシ\nョン」と不自然に改行されることがある。 例図では以下のように表示されている。 あなたに寄り添う 究極のイノベーシ ョン あなたの未来を形 作る最上のガジェ ット 英語圏で作られたWebサイトでの日本語の改行問題 英語圏で作られた後に日本語に翻訳されたサイトの例では、「今すぐダウンロード」というフレーズが「今すぐダウンロー\nド」と表示されることがあった。日本人の感覚からするとこれには強い違和感がある。他にも禁則処理が
時は2023年、夏。中国の文字界隈でもっともホットな話題は、新しいGB 18030-2022の施行でしょう。 みなさんも、いよいよGB 18030-2022が2023年8月1日より施行されるという話を聞いたことがあるかもしれませんが、実際にどのような内容で私たちにどのような影響があるか、ご存知ない方もいらっしゃることでしょう。 そこで、GB 18030-2022について概要編と詳細編の2回に分けて解説していきます。 今回はGB 18030-2022の概要編として、中国から入手した本物のGB 18030-2022の規格書の表紙をじっくり見るところから、解説を始めたいと思います。 GB 18030-2022の表紙 そもそもGBってなに?GB 18030の話題を始める前に、そもそも「GB」とはなにかについて簡単に解説しておきましょう。GBとはズバリ、中国の国家標準[※1]のことです。日本の規格で
Decoding UTF8 with Parallel Extract 23 Mar 2024 As a side-quest I recently decided to write a branchless utf8 decoder utilizing the pext or "parallel extract" instruction. It's compliant with rfc-3629, meaning that it doesn't just naively decode the code-point but also checks for overlong encoding, surrogate pairs and such. Compiled with gcc -O3 -march=x86-64-v3 the entire decoder results in just
GoでBOM付きのUTF-8ファイルを扱う必要があったので、その時に知ったテクニックを共有したいと思います。 具体的に言えば、Excelでファイル形式を「CSV UTF-8 (コンマ区切り) (.csv)」として保存した際のCSVファイルを扱った時の話です。 (Excelや少し前のメモ帳などでUTF-8としてファイルを保存すると、BOM付きのUTF-8ファイルになります。1) BOM(Byte Order Mark)とは BOM(Byte Order Mark)というのは、Unicode系の符号化方式(UTF-8やUTF-16など)の場合に、どの符号化方式であるかが分かるように先頭に付ける数バイトのデータのことです。 より詳しい説明についてはWikipediaのバイト順マークのページなどに譲ります。 このBOMというのはテキストデータの一部ではないので、プログラムで処理する時には、BOMと
なぜWindowsで開くと文字化けするのか ? Macで圧縮されたファイル・フォルダをWindows上で解凍して開くと、ファイル名が化けてしまいます。また、「__MACOSX」というフォルダが作成されます。 ファイル名が文字化けする原因 MacでZIPファイルを作成するときに使用される文字コードが「UTF-8」でエンコードされるのに対して、Windowsでは「Shift_JIS」でエンコードされています。それぞれの文字コードによる圧縮時のエンコードの違いが、文字化けの原因となっています。 「__MACOSX」とは? 「__MACOSX」は、MacのOSが使用する「リソースフォーク」が保存されたフォルダです。「リソースフォーク」は、ファイルの各種情報、コメントなどが含まれたファイルのデータのことです。Mac以外の他のOSでは必要がないフォルダとなります。 Mac用の圧縮ソフトを使用する Ma
この記事は YAMAP エンジニア Advent Calendar 2020 の九日目になる予定です。 qiita.com tl;dr URL エンコードされた文字列を、コマンドラインでシュッとデコードしたかったので調べたのでメモ。 URL エンコードされる文字列は以下の通り。 負けない事 投げ出さない事 逃げ出さない事 これを URL エンコードすると、以下のような文字列となる。 %E8%B2%A0%E3%81%91%E3%81%AA%E3%81%84%E4%BA%8B%0D%0A%E6%8A%95%E3%81%92%E5%87%BA%E3%81%95%E3%81%AA%E3%81%84%E4%BA%8B%0D%0A%E9%80%83%E3%81%92%E5%87%BA%E3%81%95%E3%81%AA%E3%81%84%E4%BA%8B 本記事で利用する環境は以下の通り。 root@
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く