Google App Engine 自带的javac编译器默认是使用操作系统的编码,在Windows系统下常常会将jsp文件内容编译为乱码,通用情况下我们都采用UTF-8的统一编码,如何才能改变Google App Engine 自带的javac编译器编码呢?
主要采用如下几个步骤:
1.下载 Google App Engine SDK for java
2. 解压后在lib目录里面有一个appengine-tools-api.jar文件,解压提取出om.google.appengine.tools.admin.Application.class,通过jd-gui或jad反编译后,可以看到如下代码片段(红色部分为本人所加内容):
private void compileJavaFiles(String classpath, File classDir, AppAdminFactory.ApplicationProcessingOptions opts)
throws IOException{
statusUpdate("Compiling java files.");
ArrayList args = new ArrayList();
String javacCmd = opts.getJavaCompiler().getPath();
args.add(javacCmd);
args.add("-encoding");
args.add("UTF-8");
args.add("-classpath");
args.add(classpath.toString());
args.add("-d");
args.add(classDir.getPath());
for (Iterator i$ = new FileIterator(classDir).iterator(); i$.hasNext(); ) { File f = (File)i$.next();
if (f.getPath().toLowerCase().endsWith(".java"))
args.add(f.getPath());
}
if (args.size() == 7)
return;
Process javac = startProcess((String[])args.toArray(new String[0]));
int status = 1;
try {
status = javac.waitFor();
} catch (InterruptedException ex) {
}
if (status != 0)
throw new RuntimeException("Failed to compile java files.");
}
3. 将更改后的Application.java再重新编译为Application.class替换appengine-tools-api.jar中的Application.class,即可解决Google App Engine 自带的javac编译器的编码问题;
需要注意的几点:
1. 通过jd-gui或jad反编译时,并不能100%的保证Application.java源代码的正确性,本人是通过jd-gui与jad两者反编译再对比分析修改后才得到正确的Application.java源代码,为了免去大家反编译Application.class的麻烦,本人将Application.java与反编译好的Applcation.class发布到了网上供大家下载
下载 Application.java Application.class (JDK6编译)
2.为了避免编码带来的烦恼,建议大家在appengine-web.xml中的system-properties节点中加入如下代码:
<property name="file.encoding" value="UTF-8"/>
<property name="DEFAULT_ENCODING" value="UTF-8"/>
分享到:
相关推荐
在C++编程中,UTF-8编码是一种广泛使用的字符编码标准,它能够表示Unicode字符集中的所有字符。本文将深入探讨如何在C++中处理UTF-8字符串,并介绍相关的关键概念和技术。 首先,C++标准库并没有直接支持UTF-8编码...
UTF-8的优势在于对ASCII字符集的兼容性,前128个Unicode字符(包括英文、数字和常见符号)只需要一个字节表示,这使得UTF-8在互联网上广泛使用,因为其与ASCII的兼容性可以减少传输数据量。此外,UTF-8也支持全球大...
C# 生成 XML 文件,编码为 UTF-8 方法 C# 生成 XML 文件,编码为 UTF-8 方法是指在 C# 编程语言中,使用特定的方法和类来生成 XML 文件,并将其编码为 UTF-8 编码格式的过程。这种方法常用于数据交换、配置文件、...
总的来说,"source insight 3.5 UTF-8中文乱码插件"是解决Source Insight 3.5与UTF-8编码不兼容问题的有效工具,通过正确安装和应用此插件,开发者可以更顺畅地在Source Insight环境中阅读和编辑包含中文字符的代码...
UTF-8-BOM,全称是“UTF-8 Byte Order Mark”,它在UTF-8编码的文件开头添加了一个特殊的字节序列(0xEF, 0xBB, 0xBF)来标识该文件使用的是UTF-8编码。BOM主要用于帮助软件识别文件的编码,但并非所有UTF-8编码的...
标题中的“PB9转换utf-8例子”指的是在PowerBuilder 9(PB9)环境下将数据从非UTF-8编码转换为UTF-8编码的一种解决方案。由于PB9本身不直接支持这种转换,开发者通常需要利用外部库或者特定的编程技巧来实现这个功能...
在编程领域,尤其是在涉及到字符编码的时候,理解和操作UTF-8和UTF-16之间的转换是一项基本技能。UTF-8和UTF-16是两种广泛使用的Unicode编码格式,它们各自有其特性和应用场景。本文将深入探讨如何利用C++来实现这两...
### UTF-8编码详解与汉字码表解析 #### UTF-8编码原理 UTF-8(Unicode Transformation Format - 8 bits)是一种变长字符编码,由Ken Thompson于1992年设计,旨在解决多语言环境下字符编码兼容性问题。其核心优势...
UTF-8的特殊之处在于它包含一个字节顺序标记(BOM),即UTF-8+BOM,但大多数情况下,UTF-8无BOM更常见。 在PHP中,进行字符编码转换可以使用内置函数,如`mb_convert_encoding()`,这个函数可以将字符串从一种编码...
GBK、UTF-8批量文件3秒快速转码工具(支持GBK,UTF-8免费转换),UTF-8/GBK编码在线转换工具,压缩包可以有多目录与文件,如目录中有图片不会转码,但是会随转码好的文件一起打包下载。 使用帮助 . 上传压缩包(仅支持zip...
如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节,而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。用4个或6个字节去编码一个UNICODE字符可能太多了,但很少会遇到那样的UNICODE...
然而,UTF-8有一个特殊的形式,即带BOM(Byte Order Mark)的UTF-8,这个BOM在某些情况下可能会引发问题。本文将详细探讨Java中如何处理UTF-8的BOM问题。 首先,我们需要理解什么是BOM。BOM是Unicode编码中的一个...
标题中的“pb12 gb转utf-8”指的是在编程领域中进行的一种字符编码转换操作。PB12可能是指PowerBuilder 12,一个流行的Windows应用程序开发工具,而GB和UTF-8则涉及到字符编码标准。 GB(通常指的是GBK或GB2312)是...
"UTF-8"和"GB2312"是两种常见的字符编码标准,它们各自有不同的历史背景和应用场景。 UTF-8(8位Unicode转换格式)是一种广泛使用的多字节字符编码方案,它兼容ASCII编码并能表示Unicode字符集中的所有字符。UTF-8...
"UTF-8转ANSI文本文件转换器"就是这样一个工具,它能够帮助用户批量将UTF-8编码的文本文件转换为ANSI编码的文本文件。在此,我们将深入探讨UTF-8和ANSI编码的原理以及转换过程中涉及的关键知识点。 **一、UTF-8编码...
然而,对于处理包含非英文字符,特别是中文字符的UTF-8编码文件时,原生的Source Insight可能会出现乱码问题,这大大降低了对中文代码的阅读体验。为了改善这一状况,我们有了"source insight UTF-8插件"。 这个...
UTF-8和ANSI是两种常见的字符编码标准,它们各自有其特点和适用场景。本文将深入探讨UTF-8与ANSI字符编码的区别、转换方法以及相关工具。 首先,让我们了解这两种编码的基本概念: 1. **UTF-8**:全称为“Unicode ...
最近需要对Linux与Windows平台下的字符传输出现乱码,对...参考了网上的UTF-8/UTF-16转换的资料,只有0x10000以下的Unicode编码进行了转换;对其代码进行了修改和补充,可以实现所有的UTF-8/UTF-16的转换,分享给大家。
请使用这款软件,直接将代码转换为UTF-8 注意: 1、xml不需要转换,因为xml默认是utf-8,在你新建的时候已经是正确的格式了 2、图片更不需要转换 3、bin目录,gen目录的直接忽略 4.只需要src目录的代码转换,请确保...