
No.2ベストアンサー
- 回答日時:
UTF8 のエンコーディングがわかっていれば問題ない, はずなんだけど.... これ, いきなり 2バイトのときから間違っているんじゃないかな?
各コードポイントのバイトは先頭バイトで決まり,
0??? ???? ⇒ 1バイト (7ビット)
110? ???? ⇒ 2バイト (11ビット)
1110 ???? ⇒ 3バイト (16ビット)
1111 0??? ⇒ 4バイト (21ビット)
1111 10?? ⇒ 5バイト (26ビット)
1111 110? ⇒ 6バイト (31ビット)
(2バイト目以降は全て 10?? ???? の形)
だったはず.
だから, 例えば
if (*(byte *)pInput & 0x80 == 0) {
sInput = *(byte *)pInput;
} else if (*(byte *)pInput & 0xe0 == 0xc0) {
sInput = ((*(byte *)pInput & 0x1f) << 6) + (*(byte *)(pInput + 1) & 0x3f);
} else if (*(byte *)pInput & 0xf0 == 0xe0) {
sInput = ((*(byte *)pInput & 0x0f) << 12) + ((*(byte *)(pInput + 1) & 0x3f) << 6) + (*(byte *)(pInput + 2) & 0x3f);
}
などとやればいいんじゃないかな. あ, インクリメントなんかは適当に処理してね.
ついでだけど, この辺の処理は全部 unsigned にした方が簡単だし, 特別な事情がない限り short は使わないと思う.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- Excel(エクセル) 全角文字「ヴ」の半角文字「ヴ」への変換方法について 3 2022/11/05 12:07
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- その他(プログラミング・Web制作) COBOL数値転記をCOPY句内での仕様 6 2022/06/15 18:48
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- Excel(エクセル) 【VBA】 Alt+PrintScreenにてアクティブウィンドウのスクショを貼付する方法 4 2022/12/08 20:53
- その他(コンピューター・テクノロジー) googleスプレッドシートでカッコ内の文字数をカウントしたい 1 2023/01/17 15:52
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
COBOL PICTUREで X,S,Vの意味
-
より高速な画像の表示法
-
10Mバイトて文字数に すると何...
-
char str[256]の256の意味は?
-
データの取り出し?
-
2バイト文字の判定はString#get...
-
CRC計算方法
-
バイト列とバイナリ列の違いが...
-
formからPOSTしたテキストエリ...
-
リトルエンディアンのデータを...
-
ロシア文字のマッチングについて
-
sizeof(long), sizeof(short)...
-
URLのエンコードで日本語は16進...
-
テキストBOXの入力制限について
-
4バイトより大きな値の2進数へ...
-
文字コードの使い分けについて
-
ピクセル,dpiから容量(バイト...
-
CD R の書き込み
-
1キロバイト文字の削除について
-
質問です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
エクセルシート名の制限を変更...
-
char str[256]の256の意味は?
-
バイト列とバイナリ列の違いが...
-
ピクセル,dpiから容量(バイト...
-
C++ Builderで文字列をバイトに...
-
Javaで日本語1文字のバイト数
-
ビットスワップとバイトスワッ...
-
SQLで1バイト、2バイト混在...
-
バイナリとBCDコード
-
URLは最高何文字まで可能なので...
-
機種依存文字をチェックしたい。
-
VBAでShift-JISのURLエンコード
-
COBOL PICTUREで X,S,Vの意味
-
memcmp バイナリデータの比較方法
-
pythonでバイナリデータを配列...
-
64bit対応
-
3バイト文字(UTF-8)をprintfで...
おすすめ情報