sencha touch app bulid for GBK
来源:互联网 发布:秦岭村庄消失知乎 编辑:程序博客网 时间:2024/05/20 06:07
由于使用的项目编码是GBK,所以JS代码都是GBK编码,在使用sencha app build production 打包生成的app.js默认是使用UTF-8编码生成,所以导致中文不能正常显示。
查看sencha.jar代码后发现如下:
public class CharsetDetector
{
private static final Logger _logger = SenchaLogManager.getLogger();
public static final Charset DefaultCharset = Charset.forName("UTF-8");
private static final Pattern _directivePattern = RegexUtil.getInstance().get("//@charset\\s+?([^\\s]+)");
public static String decodeBytes(byte[] data, int offset, int length)
{
String defaultEncoded;
try
{
defaultEncoded = new String(data, offset, length, DefaultCharset);
} catch (Exception e) {
_logger.warn("Error loading byte array as {} : {}", DefaultCharset.name(), e.getMessage());
defaultEncoded = new String(data, offset, length, Charset.forName("ASCII"));
}
Charset charset = detectCharsetFromTag(defaultEncoded);
if (charset != null) {
return new String(data, offset, length, charset);
}
return defaultEncoded;
}
public static String decodeBytes(byte[] data) {
return decodeBytes(data, 0, data.length);
}
public static Charset detectCharsetFromTag(String defaultEncoded) {
Matcher m = _directivePattern.matcher(defaultEncoded);
if (m.find()) {
String charsetName = m.group(1);
if (charsetName.endsWith("-->")) {
charsetName = charsetName.replace("-->", "");
}
if (_logger.isDebugEnabled()) {
_logger.debug("Detected charset directive for charset : {}", charsetName);
}
if (Charset.availableCharsets().containsKey(charsetName)) {
if (_logger.isDebugEnabled()) {
_logger.debug("Detected charset {}", charsetName);
}
return Charset.forName(charsetName);
}
_logger.warn("Specified charset was not in available charsets : {}", charsetName);
}
return null;
}
}
注意红色代码---:如果在js代码注释如下:
//@charset GBK
Ext.define('IMovie.view.Main', {extend: 'Ext.tab.Panel',
xtype: 'main',
requires: [
'Ext.TitleBar',
'Ext.Video'
],
config: {
tabBarPosition: 'bottom',
items: [
{
title: '电影‘,
iconCls: 'home',
styleHtmlContent: true,
scrollable: true,
items: {
docked: 'top',
xtype: 'titlebar',
title: 'Welcome to Sencha Touch 2'
},
html: [
"You've just generated a new Sencha Touch 2 project. What you're looking at right now is the ",
"contents of <a target='_blank' href=\"app/view/Main.js\">app/view/Main.js</a> - edit that file ",
"and refresh to change what's rendered here."
].join("")
},
{
title: '音乐',
iconCls: 'action',
items: [
{
docked: 'top',
xtype: 'titlebar',
title: 'Getting Started'
},
{
xtype: 'video',
url: 'http://av.vimeo.com/64284/137/87347327.mp4?token=1330978144_f9b698fea38cd408d52a2393240c896c',
posterUrl: 'http://b.vimeocdn.com/ts/261/062/261062119_640.jpg'
}
]
}
]
}
});
就可以按你指定的字符编码生成js,中文就可以正常显示。
- sencha touch app bulid for GBK
- Sencha Touch App 自动更新
- Sencha Touch 快速入门2.0 第一章 开发Sencha Touch App
- Sencha Touch 快速入门2.0 第一章 开发Sencha Touch App
- Sencha Touch快速入门2.0之Sencha Touch App开发
- Sencha Touch App (MVC)开发小结
- sencha touch CMD 6.0 创建 app
- List Pull Refresh Plugin for Sencha Touch
- Sencha Touch
- sencha touch
- sencha touch
- sencha touch 2与phonegap结合开发web app
- Sencha Touch 2 Web App 项目开发实战一
- sencha touch 2与phonegap结合开发web app
- sencha touch 2与phonegap结合开发web app
- sencha touch 创建app后,修改启动画面
- Sencha Touch用sencha app build native打包应用程序出现问题
- bulid NEST Version for eclipse
- chm文档显示空白的解决方案
- iOS7默认状态栏文字颜色
- mysql日志设置优化
- java中case语句的相关问题
- spark 1.0 在hadoop-2.0.0-cdh4.2.0上面安装成功
- sencha touch app bulid for GBK
- 服务器推送消息到客户端 SignalR 弹出消息
- 通信业饱受争议 大话光通信那些事儿(一)
- 最长公共子序列
- Ubuntu12.04下安装Qt4和创建第一个Qt程序
- 介绍KeyTool GUI工具2款
- Matlab 画多个图例( Plot multiple legends )
- linux驱动摸索-- 输入系统(按键输入)
- 通信业饱受争议 大话光通讯那些事儿(二)