文字コード総合スレ p ..
[2ch|▼Menu]
175:デフォルトの名無しさん
23/03/19 17:30:01.32 NPoZApcF.net
C言語でShiftJISからUTF-8に変換するコードをライブラリは使用しないで書いて下さい。
以下はC言語でShiftJISからUTF-8に変換する簡単なコードです。このコードでは、ShiftJISの1バイト目が0x81以上0x9F以下または0xE0以上0xEF以下の場合には2バイト文字、それ以外の場合には1バイト文字として扱います。
#include <stdio.h>
void sjis_to_utf8(char *sjis, char *utf8) {
unsigned char c1, c2;
while (*sjis != '\0') {
c1 = *(unsigned char *)sjis++;
if (c1 <= 0x7F) {
*utf8++ = c1;
} else {
c2 = *(unsigned char *)sjis++;
if ((0x81 <= c1 && c1 <= 0x9F) || (0xE0 <= c1 && c1 <= 0xEF)) {
*utf8++ = ((c1 << 8) | c2) + 0x3C00;
} else {
*utf8++ = c1;
sjis--;
}
}
}
*utf8 = '\0';
}
int main() {
char sjis[] = "こんにちは、世界!";
char utf8[100];
sjis_to_utf8(sjis, utf8);
printf("%s\n", utf8);
return 0;
}


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

284日前に更新/111 KB
担当:undef