From f94ab0f5fe8e5ba5ffeff09aad23fe1c38e5a20c Mon Sep 17 00:00:00 2001 From: Pieter de Bie Date: Thu, 25 Dec 2008 20:03:53 +0100 Subject: [PATCH] Use NSISOLatin1 encoding instead of ASCII We used to fall back on the ASCII encoding if UTF-8 did not work out. However, this causes its own problems; ASCII is only valid for the lower 7 bytes. We solve this by using Latin-1, which should have a valid character for every byte sequence --- NSFileHandleExt.m | 4 ++-- PBEasyPipe.m | 4 ++-- PBGitTree.m | 6 +++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/NSFileHandleExt.m b/NSFileHandleExt.m index da15999..2772855 100644 --- a/NSFileHandleExt.m +++ b/NSFileHandleExt.m @@ -49,7 +49,7 @@ buffer[bytesReceived-1] = '\0'; NSString* s = [NSString stringWithCString: buffer encoding: NSUTF8StringEncoding]; if ([s length] == 0) - s = [NSString stringWithCString: buffer encoding: NSASCIIStringEncoding]; + s = [NSString stringWithCString: buffer encoding: NSISOLatin1StringEncoding]; return s; case '\r': bytesReceived--; @@ -59,7 +59,7 @@ buffer[bytesReceived-1] = '\0'; NSString *retVal = [NSString stringWithCString: buffer encoding: NSUTF8StringEncoding]; if ([retVal length] == 0) - retVal = [NSString stringWithCString: buffer encoding: NSASCIIStringEncoding]; + retVal = [NSString stringWithCString: buffer encoding: NSISOLatin1StringEncoding]; free(buffer); return retVal; diff --git a/PBEasyPipe.m b/PBEasyPipe.m index 2c0c73b..fd3cf52 100644 --- a/PBEasyPipe.m +++ b/PBEasyPipe.m @@ -76,7 +76,7 @@ NSData* data = [handle readDataToEndOfFile]; NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; if (!string) - string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; + string = [[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding]; // Strip trailing newline if ([string hasSuffix:@"\n"]) @@ -101,7 +101,7 @@ NSData* data = [handle readDataToEndOfFile]; NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; if (!string) - string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; + string = [[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding]; // Strip trailing newline if ([string hasSuffix:@"\n"]) diff --git a/PBGitTree.m b/PBGitTree.m index e98ac3f..be0011e 100644 --- a/PBGitTree.m +++ b/PBGitTree.m @@ -77,7 +77,11 @@ data = [handle readDataToEndOfFile]; } - return [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + NSString* string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + if (!string) { + string = [[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding]; + } + return string; } - (void) saveToFolder: (NSString *) dir