標識調用可對字符應用最佳適應算法。傳遞給默認 API 方法的不受支持的字符可通過最佳適應算法映射到危險字符。
當操作系統及其上運行的應用程序之間的字符集不匹配時,傳遞給默認 API 方法的不受支持的字符可通過最佳適應算法映射到危險字符。
例 1:在 Objective-C 中,以下代碼示例會將包含 UTF-8 字符的 NSString 對象轉換成 ASCII 數據然后返回:
...
unichar ellipsis = 0x2026;
NSString *myString = [NSString stringWithFormat:@"My Test String%C",
ellipsis];
NSData *asciiData = [myString dataUsingEncoding:NSASCIIStringEncoding
allowLossyConversion:YES];
NSString *asciiString = [[NSString alloc] initWithData:asciiData
encoding:NSASCIIStringEncoding];
NSLog(@"Original:%@ (length %d)", myString, [myString length]);
NSLog(@"Best-fit-mapped:%@ (length %d)", asciiString, [asciiString length]);
// output:
// Original:My Test String...(length 15)
// Best-fit-mapped:My Test String...(length 17)
...
[1] Apple Secure Coding Guide Apple
[2] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 176
[3] String Programming Guide Apple