- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我刚刚在 Borland JBuilder 2006 中得到了一个我什至无法构建的项目。我有两个资源文件,一个是简体中文文本,另一个是繁体中文文本。当我尝试构建项目时,文本被误解,并且它看到“非法转义字符”。
现在,如果我在“项目”->“项目属性”->“常规”->“编码”中将编码设置为 GB2312,简体中文文本将正确显示。但繁体中文资源仍然是乱码。
我认为对于繁体中文,此设置应该设置为 Big5,但即使这样也不起作用。.当我将其设置为 Big5 时,简体中文就会损坏。
之前从事此工作的开发人员已经离开,没有机会向我展示如何构建这个项目..
有什么想法吗?
谢谢
克雷布
最佳答案
They're called "Res_SChinese.java" and "Res_TChinese.java"
我认为这些一定是 Java 类文件,但令我惊讶的是它们采用不同的编码。
拥有多种编码的源文件是非常不可取的。如果您不知道源文件的字符集是什么,可以使用 ICU project图书馆来帮助你 guess :
public static void main(String[] args) throws IOException {
InputStream file = new FileInputStream(args[0]);
try {
file = new BufferedInputStream(file);
CharsetDetector detector = new CharsetDetector();
detector.setText(file);
String tableTemplate = "%10s %10s %8s%n";
System.out.format(tableTemplate, "CONFIDENCE",
"CHARSET", "LANGUAGE");
for (CharsetMatch match : detector.detectAll()) {
System.out.format(tableTemplate, match
.getConfidence(), match.getName(), match
.getLanguage());
}
} finally {
file.close();
}
}
请注意,它可以检测到的中文字符编码的数量是有限的( ISO-2022-CN, GB18030 and Big5 ),但至少它可以帮助您找出所有内容是否只是以 Unicode 转换格式或其他方式编码。
<小时/>Eclipse(JBuilder 现在是基于 Eclipse 的,不是吗?)可以为单个文件设置编码。您可以通过右键单击文件并选择“属性”来设置 Eclipse 对文件使用的编码。编码位于资源属性下。这很难管理,并且不适用于您使用的任何外部工具(例如 Ant 构建脚本)。
可以使用外部使用不同的编码来编译文件。例如:
javac -encoding GB18030 Foo.java
但是如果这些类具有相互依赖性,那很快就会变得痛苦。
<小时/>面对多种编码,我会将所有文件转换为单一编码。这里有几个选项。
使用 Latin-1 子集
Java 支持源文件中的 Unicode 转义序列。因此,Unicode 字符 U+6874 桴 可以写成文字\u6874。 JDK工具native2ascii可用于将 Java 文件转换为 Latin-1 值。
native2ascii -encoding GB2312 FooIn.java FooOut.java
生成的文件可能在任何地方编译都没有问题,但对于任何阅读/编辑文件的人来说可能是一场噩梦。
使用GB18030
GB18030是一个巨大的字符集,因此如果这是您的 native 编码,那么使用它可能是一个主意(否则,如果我要走这条路,我会使用 UTF-8)。
您可以使用这样的代码来执行转换:
public static void main(String[] args) throws IOException {
changeEncoding("in_cn.txt", Charset.forName("GBK"),
"out_cn.txt", Charset.forName("GB18030"));
}
private static void changeEncoding(String inFile,
Charset inCharset, String outFile, Charset outCharset)
throws IOException {
InputStream in = new FileInputStream(inFile);
Reader reader = new InputStreamReader(in, inCharset);
OutputStream out = new FileOutputStream(outFile);
Writer writer = new OutputStreamWriter(out, outCharset);
copy(reader, writer);
writer.close();
reader.close();
// TODO: try/finally blocks; proper stream handling
}
private static void copy(Reader reader, Writer writer)
throws IOException {
char[] cbuf = new char[1024];
while (true) {
int r = reader.read(cbuf);
if (r < 0) { break; }
writer.write(cbuf, 0, r);
}
}
<小时/>
If I open them in Notepad, i can view them both properly even with just the locale set to Chinese (PRC)
记事本使用启发式字符 encoding detection机制。 It doesn't always work .
关于java - JBuilder 2006 多种编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1152612/
我对自定义 CSS 或在将图像作为 Logo 上传到页面时使用编码 block 有疑问。我正在为我的网站使用 squarespace,我需要帮助编码我的 Logo 以使其适合每个页面。一个选项是使用自
如 encoding/json 包文档中所述, Marshal traverses the value v recursively. If an encountered value implement
我必须做一些相当于Java中的iconv -f utf8 -t sjisMS $INPUT_FILE的事情。该命令在 Unix 中 我在java中没有找到任何带有sjisMS的编码。 Java中有Sh
从 PHP 5.3 迁移到 PHP 5.6 后,我遇到了编码问题。我的 MySQL 数据库是 latin1,我的 PHP 文件是 windows-1251。现在一切都显示为“ñëåäíèòå àäðå
我有一个 RScript文件(我们称之为 main.r ),它引用了另一个文件,使用以下代码: source("functions.R") 但是,当我运行 RScript 文件时,它提示以下错误:
我无法设法从 WSDL 创建 RPC/编码风格的代码 - 有谁知道哪个框架可以做到这一点? 带有 adb 和 xmlbeans 映射的 Axis2 无法正常工作(无法处理响应中的肥皂编码)直接使用 X
安装了最新版本的Node.Js()和npm包**(1.2.10)**当我运行 Express 命令来生成项目时,它向我抛出以下错误 buffer.js:240 switch (encoding &
JavaScript中有JSON编码/解码base64编码/解码函数吗? 最佳答案 是的,btoa() 和 atob() 在某些浏览器中可以工作: var enc = btoa("this is so
>>> unicode('восстановление информации', 'utf-16') Traceback (most recent call last): File "", line
我当然熟悉 java.net.URLEncoder 和 java.net.URLDecoder 类。但是,我只需要 HTML 样式的编码。 (我不想将 ' ' 替换为 '+' 等)。我不知道任何只做
有一个非常简单的 SSIS 包: OLE DB Source 通过 View 获取数据(数据库表 nvarchar 或 nchar 中的所有字符串列)。 派生列,用于格式化现有日期并将其添加到数据集(
我正在使用一个在 Node 中进行base64编码的软件,如下所示: const enc = new Buffer('test', 'base64') console.log(enc) 显示: 我正
我试图将带有日语字符的数据插入到 oracle 数据库中。事情是保存在数据库中的是一堆倒置的问号。我该如何解决这个问题 最佳答案 见 http://www.errcode.net/blogs/?p=6
当我在 java 中解压 zip 文件时,我发现文件名中出现了带有重音字符的奇怪行为。 西索: Add File user : L'equipe Technique -- Folder : spec
在网上冲浪我找到了 ExtJS 的 Ext.Gantt 插件,该扩展有一个特殊的编码。任何人都知道如何编码那样或其他复杂的形式。 Encoded Gantt Chart 最佳答案 它似乎被 Dean
我正在用C语言做一个编码任务,我进展顺利,直到读取符号并根据表格分配相应的代码的部分。我必须连接几个代码,直到它们的长度达到 32 位,为此我必须将它们写入一个文件中。这种写入文件的方法给我带来了很多
我有一个外部链接的 javascript 文件。在那个 javascript 里面,我有这个功能: function getMonthNumber(monthName){ monthName = mo
使用mechanize,我检索到一个网页的源页面,其中包含一些非ASCII字符,比如汉字。 代码如下: #using python2.6 from mechanize import Browser b
我有一个包含字母 ø 的文件。当我用这段代码 File.ReadLines(filePath) 读取它时,我得到了一个问号而不是它。 当我像这样添加编码时 File.ReadLines(filePat
如何翻译下面的字符串 H.P. Dembinski, B. K\'{e}gl, I.C. Mari\c{s}, M. Roth, D. Veberi\v{c} 进入 H. P. Dembinski,
我是一名优秀的程序员,十分优秀!