Невозможно преобразовать японскую текстовую строку в NSUTF8StringEncoding - PullRequest
0 голосов
/ 25 сентября 2018

Это оригинальная строка:

"101","çÇìc éOòY","¿∂¿fiªÃfi€≥","100",
"102","êÛìc å‹òY","±ª¿fi∫fi€≥","100",
"103","é·ìc ëÂï„","‹∂¿¿fi≤Ωπ","100",
"104","ïêìc ëæòY","¿π¿fi¿€≥","200",
"105","çÇå¥Å@èü","¿∂ ◊œªŸ","200",
"106","è¨ñÏÅ@é¿","µ…–…Ÿ","300",
"107","ê¥êÖÅ@óyçÅ","º–Ωfi Ÿ∂","300",

Это то, что я хочу:

"101","高田 三郎","タカダサブロウ","100",
"102","浅田 五郎","アサダゴロウ","100",
"103","若田 大輔","ワカタダイスケ","100",
"104","武田 太郎","タケダタロウ","200",
"105","高原 勝","タカハラマサル","200",
"106","小野 実","オノミノル","300",
"107","清水 遥香","シミズハルカ","300",

Я кодирую вот так:

NSString * path = [[NSBundle mainBundle] pathForResource:@"Zaikoichi" ofType:@"txt"];
NSError *error;
NSStringEncoding encoding;
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSMacOSRomanStringEncoding error:&error];

и получаюрезультат, подобный этому:

"101","çÇìc éOòY","¿∂¿fiªÃfi€≥","100",
"102","êÛìc å‹òY","±ª¿fi∫fi€≥","100",
"103","é·ìc ëÂï„","‹∂¿¿fi≤Ωπ","100",

Когда я использую это, возвращается ноль:

NSString * content = [NSString stringWithContentsOfFile:&encoding encoding:NSUTF8StringEncoding error:&error];

Из этого текстового файла я хочу получить читаемую строку NSString.Я попытался выполнить поиск, но не нашел решения. В моем случае клиенты не изменяют txt-файл в соответствии с руководством UTF8.Они просто копируют файл в документ iCloud, после чего мое приложение читает этот файл.

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Вы должны поставить path в stringWithContentsOfFile, а не &encoding

NSString * content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
0 голосов
/ 26 сентября 2018

Я решил свою проблему с помощью NSShiftJISStringEncoding

NSString * path = [self getIcloudPathFromFileName:name];

NSError *error;
NSStringEncoding encoding;
NSString *content = [NSString stringWithContentsOfFile:path encoding:NSShiftJISStringEncoding error:&error];
0 голосов
/ 25 сентября 2018

Поскольку текстовый файл находится в комплекте и у вас есть доступ к нему, откройте его в текстовом редакторе и сохраните в кодировке UTF8.

Затем всегда читайте его с кодировкой NSUTF8StringEncoding.

...