钛标签-从服务器解释unicode
我想在我的应用程序中显示字体图标。如果在标签的文本值中使用unicode编译文件,则一切正常 我的目标是根据API响应更改显示的图标。是否可以从API返回的文本中解释unicode 下面是一个例子:钛标签-从服务器解释unicode,unicode,titanium,appcelerator,Unicode,Titanium,Appcelerator,我想在我的应用程序中显示字体图标。如果在标签的文本值中使用unicode编译文件,则一切正常 我的目标是根据API响应更改显示的图标。是否可以从API返回的文本中解释unicode 下面是一个例子: var picto = Ti.UI.createLabel({ // WORKS text:'\uf019', color:'black', font:{ fontFamily:'icons', fontSize:40 } }); T
var picto = Ti.UI.createLabel({ // WORKS
text:'\uf019',
color:'black',
font:{
fontFamily:'icons',
fontSize:40
}
});
Ti.API.Info(apiResponse.icon); // \uf019
var picto = Ti.UI.createLabel({ // DON'T WORK
text:apiResponse.icon,
color:'black',
font:{
fontFamily:'icons',
fontSize:40
}
});
非常感谢:)正如我在评论中所说,您只需要像这样转义unicode文本: 案例1:apiResponse.icon应为=f019
var picto = Ti.UI.createLabel({ // DON'T WORK
text : "\\u" + apiResponse.icon, \\ I have escaped 'u' character, so it should work now
color:'black',
font:{
fontFamily:'icons',
fontSize:40
}
});
var picto = Ti.UI.createLabel({ // DON'T WORK
text : String.fromCharCode(apiResponse.icon), // it will make sure to convert unicode into a character
color:'black',
font:{
fontFamily:'icons',
fontSize:40
}
});
如果案例1不起作用,那么您可以尝试以下方法:
案例2:apiResponse.icon=0xf019
var picto = Ti.UI.createLabel({ // DON'T WORK
text : "\\u" + apiResponse.icon, \\ I have escaped 'u' character, so it should work now
color:'black',
font:{
fontFamily:'icons',
fontSize:40
}
});
var picto = Ti.UI.createLabel({ // DON'T WORK
text : String.fromCharCode(apiResponse.icon), // it will make sure to convert unicode into a character
color:'black',
font:{
fontFamily:'icons',
fontSize:40
}
});
您需要改变方式,您使用的是unicode而不是SB unicode。 SBUnicode是您使用的4位代码, 有一个问题的例子。在xml和JS中 第一个xml示例:
\ue012
示例2:
a="\uE105"; \\ code from response ;
var incode=Ti.UI.createLabel({
text : a,
top : 300,
});
检查流动链接上的Unicode和SBunicode,以获得更好的效果。
我认为这很有帮助
请提供一个例子。使用带有图标字体的标签并将文本设置为“\uf19c”不会有问题,它将显示正确的图标(例如FontAwesome中的银行符号)。@miga我已更新了我的消息:)。也许可以尝试替换(“\\”、“\”)之类的。可能是escaped@Cl可能是因为JSON.parse在apiResponse.icon中出错。您可以尝试以下
文本:'\u'+apiResponse.icon
@prashantsani我不能这样做,编译过程中出现错误:解析***/index.js失败[错误]:SyntaxError:字符串[第356行第51列]中的十六进制字符模式无效][错误]:var logo=Ti.UI.createLabel({text:'\u'+apiResp.icon,颜色:'black',top:0,touchEnabled:false,font:{fontFamily:'icons',fontSize:40});它适用于第二种方法!Thanls a lot@Prashant:)@Clément请将此答案标记为已接受,以帮助其他有类似问题的用户找到正确答案。@prashantsani如何显示\uF0298
?对我来说,4个字符的unicode可以工作,但超过4个字符的unicode不能工作,例如,此代码只打印8个字符(最后一个字符)并忽略前4个字符。我想我以前尝试过,但它不起作用,但可能还有另一个问题。它与上述方法一起工作。但感谢您的回答:)