Transliterate / transpose NSString中的字符 [英] Transliterate/transpose the characters in the NSString

查看:95
本文介绍了Transliterate / transpose NSString中的字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将一个西里尔字符串音译成最接近拉丁语的字符串。例如。 матрешка=>matreshka,водка=>伏特加。理想情况下,我想要在NSString或其他已经知道字母表所有内容的地方准备好使用方法,并且可以进行对话。

I want to transliterate a cyrillic string to it's closest latin equivalent. E.g. "матрешка" => "matreshka", "водка" => "vodka". So ideally I want some ready to use method on the NSString or somewhere else that already knows everything about the alphabets and can do the conversation.

但是如果这样的功能没有在iOS API中存在然后我会对ruby的 tr 方法感到非常满意,该方法只是使用指定为参数的简单映射替换字符串中的字符。

But if such functionality doesn't exist in the iOS APIs then I will be totally happy with something like ruby's tr method that just replaces the characters in a string using a simple mapping specified as a parameter.

"баба".tr('абвгд', 'abvgd')


推荐答案

尝试 CFStringTransform CFMutableString函数 kCFStringTransformToLatin 转换标识符或使用简单映射创建NSString类别。

Either try CFStringTransform function of CFMutableString with kCFStringTransformToLatin transform identifier or make a NSString category with simple mapping.

由问题海报编辑:更具体地说应该是:

NSMutableString *buffer = [@"русский язык" mutableCopy];
CFMutableStringRef bufferRef = (__bridge CFMutableStringRef)buffer;
CFStringTransform(bufferRef, NULL, kCFStringTransformToLatin, false);
NSLog(@"%@", buffer); // outputs "russkij âzyk"

这篇关于Transliterate / transpose NSString中的字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆