收集位图字体的iOS货币符号?

收集位图字体的iOS货币符号?,ios,internationalization,in-app-purchase,storekit,monogame,Ios,Internationalization,In App Purchase,Storekit,Monogame,我的应用程序正在显示应用内购买产品的价格。我如何(在设计时)列举所有苹果国际应用商店中使用的货币符号和字符?我在应用程序中使用基于“纹理图集”的位图字体显示文本,也就是说,我必须手动包含我要显示的每个字符 我意识到这是一个移动的目标,所以我计划让我的逻辑变得宽容。例如,如果苹果在未来添加了一些类似于欧元的符号,而有人正在运行我的应用程序的旧版本,我会悄悄地删除该字符,并将数字部分显示为“2.99”或“2,99”等 但是,根据苹果公司的官方名单,我今天如何才能使我的名单尽可能准确呢 以下是字符串的

我的应用程序正在显示应用内购买产品的价格。我如何(在设计时)列举所有苹果国际应用商店中使用的货币符号和字符?我在应用程序中使用基于“纹理图集”的位图字体显示文本,也就是说,我必须手动包含我要显示的每个字符

我意识到这是一个移动的目标,所以我计划让我的逻辑变得宽容。例如,如果苹果在未来添加了一些类似于欧元的符号,而有人正在运行我的应用程序的旧版本,我会悄悄地删除该字符,并将数字部分显示为“2.99”或“2,99”等

但是,根据苹果公司的官方名单,我今天如何才能使我的名单尽可能准确呢

以下是字符串的格式(直接从):


没有人急于回答这个问题,所以这是我迄今为止找到的最好的选择。基本上,该方法将从下一页中删除货币符号和拉丁字符:

请注意,有一个通用货币符号可用作备用


如果有人有更好的答案(意思是从苹果那里收集到的),我很乐意接受你的答案。

我很快写了一篇快速的文章,从每个可用的语言环境中获取数字格式输出。将其过滤为仅包含货币符号和标点符号,将提供一组相对完整的字符

let price = 0 as NSDecimalNumber
let availableIdentifiers = Locale.availableIdentifiers
var allCurrencySymbols: String = ""
for identifier in availableIdentifiers
{
    let locale = Locale(identifier: identifier)
    let formatter = NumberFormatter()
    formatter.formatterBehavior = NumberFormatter.Behavior.behavior10_4
    formatter.numberStyle = NumberFormatter.Style.currency
    formatter.locale = locale

    let formattedPrice = formatter.string(from: price)!
    let currencySymbolsOnly = formattedPrice.replacingOccurrences(of: "0", with: "")
    allCurrencySymbols.append(currencySymbolsOnly)
}

var set = Set<Character>()
let allCurrencySymbolsMinusDuplicates = String(allCurrencySymbols.characters.filter{ set.insert($0).inserted } )
print(allCurrencySymbolsMinusDuplicates)
将价格=0设为小数位数
让availableIdentifiers=Locale.availableIdentifiers
var allCurrencySymbols:String=“”
对于availableIdentifiers中的标识符
{
让locale=locale(标识符:identifier)
let formatter=NumberFormatter()
formatter.formatterBehavior=NumberFormatter.Behavior.Behavior 10\u 4
formatter.numberStyle=NumberFormatter.Style.currency
formatter.locale=locale
让formattedPrice=formatter.string(from:price)!
let currencySymbolsOnly=formattedPrice.replacingOccurrences(of:“0”,带:“”)
allCurrencySymbols.append(仅限CurrencySymbols)
}
var set=set()
让allCurrencySymbolsMinusDuplicates=String(allCurrencySymbols.characters.filter{set.insert($0.inserted})
打印(所有货币符号副本)
在我的Mac上,这会产生输出

,KMFCABuRE。‏₪٠٫۰$০₹YDTShN¥H€₺₦L₸rOP၀纳扎尔邦०UفجقVsk/zł1547; Q༠Zد֏سل₱؜یاoʻmكብርXdjbI₾ع​₽сом₼ت₩f₡¥Wරුب₭नेरूtإ₴l৳يp₫₮

…可用于创建位图字体。但是请记住,您的源字体也需要支持字符

let price = 0 as NSDecimalNumber
let availableIdentifiers = Locale.availableIdentifiers
var allCurrencySymbols: String = ""
for identifier in availableIdentifiers
{
    let locale = Locale(identifier: identifier)
    let formatter = NumberFormatter()
    formatter.formatterBehavior = NumberFormatter.Behavior.behavior10_4
    formatter.numberStyle = NumberFormatter.Style.currency
    formatter.locale = locale

    let formattedPrice = formatter.string(from: price)!
    let currencySymbolsOnly = formattedPrice.replacingOccurrences(of: "0", with: "")
    allCurrencySymbols.append(currencySymbolsOnly)
}

var set = Set<Character>()
let allCurrencySymbolsMinusDuplicates = String(allCurrencySymbols.characters.filter{ set.insert($0).inserted } )
print(allCurrencySymbolsMinusDuplicates)