質問するログイン新規登録

回答編集履歴

3

書式の改善

2021/05/20 09:19

投稿

itagagaki
itagagaki

スコア8407

answer CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  でデコードするのは無理です。
10
10
 
11
- そこで、チカラワザになりますが、`JIS_DATA`の各「バイト」の最上位ビットを'1`にしてしまいましょう。
11
+ そこで、チカラワザになりますが、`JIS_DATA`の各「バイト」の最上位ビットを'1'にしてしまいましょう。
12
12
  そうすれば`JIS_DATA`を「EUC-JP でエンコードされたデータ」とみなすことが可能になるかな?と思います。
13
13
  ```
14
14
  for (int i = 0; i < sizeof JIS_DATA / sizeof(wchar_t); i++) {

2

書式の改善

2021/05/20 09:18

投稿

itagagaki
itagagaki

スコア8407

answer CHANGED
@@ -1,15 +1,15 @@
1
1
  > wchar_t JIS_DATA[100];
2
2
  > 上記の領域にJISコードの2バイト文字列(ABCDEFGH)が格納されています。
3
3
 
4
- JIS X 0208 文字セットの2バイト文字が wchar_t 配列に格納されているものと解釈して話を進めます。
4
+ JIS X 0208 文字セットの2バイト文字が`wchar_t`配列に格納されているものと解釈して話を進めます。
5
5
  その配列は「ISO-2022-JP で符号化されたデータ」ではないので、
6
6
 
7
7
  > QTextCodec::codecForName("ISO-2022-JP");
8
8
 
9
9
  でデコードするのは無理です。
10
10
 
11
- そこで、チカラワザになりますが、JIS_DATA の各「バイト」の最上位ビットを'1`にしてしまいましょう。
11
+ そこで、チカラワザになりますが、`JIS_DATA`の各「バイト」の最上位ビットを'1`にしてしまいましょう。
12
- そうすれば JIS_DATA を「EUC-JP でエンコードされたデータ」とみなすことが可能になるかな?と思います。
12
+ そうすれば`JIS_DATA`を「EUC-JP でエンコードされたデータ」とみなすことが可能になるかな?と思います。
13
13
  ```
14
14
  for (int i = 0; i < sizeof JIS_DATA / sizeof(wchar_t); i++) {
15
15
  if (0 == JIS_DATA[i]) {

1

コードを修正

2021/05/20 09:18

投稿

itagagaki
itagagaki

スコア8407

answer CHANGED
@@ -12,7 +12,10 @@
12
12
  そうすれば JIS_DATA を「EUC-JP でエンコードされたデータ」とみなすことが可能になるかな?と思います。
13
13
  ```
14
14
  for (int i = 0; i < sizeof JIS_DATA / sizeof(wchar_t); i++) {
15
+ if (0 == JIS_DATA[i]) {
16
+ break;
17
+ }
15
- JIS_DATA[i] |= 0x8080;
18
+ JIS_DATA[i] |= 0x8080;
16
19
  }
17
20
  QTextCodec::codecForName("EUC-JP");
18
21
  QByteArray aJisStr = QByteArray((const char *)JIS_DATA);