IOS - 统一code Unsign [英] IOS - Unicode Unsign
本文介绍了IOS - 统一code Unsign的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我用C#编写一个函数,我想将其转换为目标c。怎么办呢?
公共静态字符串的Uni codeUnSign(字符串s)
{
常量字符串单字符= \"àáảãạâầấẩẫậăằắẳẵặèéẻẽẹêềếểễệđìíỉĩịòóỏõọôồốổỗộơờớởỡợùúủũụưừứửữựỳýỷỹỵÀÁẢÃẠÂẦẤẨẪẬĂẰẮẲẴẶÈÉẺẼẸÊỀẾỂỄỆĐÌÍỈĨỊÒÓỎÕỌÔỒỐỔỖỘƠỜỚỞỠỢÙÚỦŨỤƯỪỨỬỮỰỲÝỶỸỴÂĂĐÔƠƯ\";
常量字符串koDauChars = \"aaaaaaaaaaaaaaaaaeeeeeeeeeeediiiiiooooooooooooooooouuuuuuuuuuuyyyyyAAAAAAAAAAAAAAAAAEEEEEEEEEEEDIIIOOOOOOOOOOOOOOOOOOOUUUUUUUUUUUYYYYYAADOOU\"; 如果(string.IsNullOrEmpty(多个))
{
返回S;
} 字符串retVal的=的String.Empty;
的for(int i = 0; I< s.Length;我++)
{
INT POS = uniChars.IndexOf(S [I]的ToString());
如果(POS> = 0)
retVal的+ = koDauChars [POS]
其他
retVal的+ = S [I]
}
返回retVal的;
}
解决方案
您可以使用的CoreFoundation CFStringTransform
函数做几乎所有的转换,从你的清单。只有DJ和DJ已被另案处理:
的NSString *统一codeUnsign(的NSString * S)
{
*的NSMutableString结果= [S mutableCopy]
//如果使用ARC编译__bridge只要求:
CFStringTransform((__桥CFMutableStringRef)结果,NULL,kCFStringTransformStripCombiningMarks,否); [结果replaceOccurrencesOfString:@DJwithString:@D选项:0范围:NSMakeRange(0,[结果长度])];
[结果replaceOccurrencesOfString:@DJwithString:@D选项:0范围:NSMakeRange(0,[结果长度])]; 返回结果;
}
例如:
的NSString *输入= @世界,你好 - ếểễệđìíỉĩịòó!;
* NSString的输出=统一codeUnsign(输入);
的NSLog(@%@,输出);
//输出信息:Hello World! - eeeediiiiioo
I have a function written in C#, i want to convert it to objective-c. How to do it?
public static string UnicodeUnSign(string s)
{
const string uniChars = "àáảãạâầấẩẫậăằắẳẵặèéẻẽẹêềếểễệđìíỉĩịòóỏõọôồốổỗộơờớởỡợùúủũụưừứửữựỳýỷỹỵÀÁẢÃẠÂẦẤẨẪẬĂẰẮẲẴẶÈÉẺẼẸÊỀẾỂỄỆĐÌÍỈĨỊÒÓỎÕỌÔỒỐỔỖỘƠỜỚỞỠỢÙÚỦŨỤƯỪỨỬỮỰỲÝỶỸỴÂĂĐÔƠƯ";
const string koDauChars = "aaaaaaaaaaaaaaaaaeeeeeeeeeeediiiiiooooooooooooooooouuuuuuuuuuuyyyyyAAAAAAAAAAAAAAAAAEEEEEEEEEEEDIIIOOOOOOOOOOOOOOOOOOOUUUUUUUUUUUYYYYYAADOOU";
if (string.IsNullOrEmpty(s))
{
return s;
}
string retVal = String.Empty;
for (int i = 0; i < s.Length; i++)
{
int pos = uniChars.IndexOf(s[i].ToString());
if (pos >= 0)
retVal += koDauChars[pos];
else
retVal += s[i];
}
return retVal;
}
解决方案
You could use the CoreFoundation CFStringTransform
function which does almost all transformations from your list. Only "đ" and "Đ" have to be handled separately:
NSString *UnicodeUnsign(NSString *s)
{
NSMutableString *result = [s mutableCopy];
// __bridge only required if you compile with ARC:
CFStringTransform((__bridge CFMutableStringRef)result, NULL, kCFStringTransformStripCombiningMarks, NO);
[result replaceOccurrencesOfString:@"đ" withString:@"d" options:0 range:NSMakeRange(0, [result length])];
[result replaceOccurrencesOfString:@"Đ" withString:@"D" options:0 range:NSMakeRange(0, [result length])];
return result;
}
Example:
NSString *input = @"Hễllö Wõrld! - ếểễệđìíỉĩịòó";
NSString *output = UnicodeUnsign(input);
NSLog(@"%@", output);
// Output: Hello World! - eeeediiiiioo
这篇关于IOS - 统一code Unsign的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文