我需要创建一个org.dom4j.Document,但是当我打印它时,它总是UTF-8.我想把它改成ISO-8859-1,但我找不到这样做的方法一天了.无法使用.setEncoding(),并且即时创建Document(而不是从InputStream读取).
这与我在http://www.coderanch.com/t/127978/XML/change-Encoding-Dom上创建的问题相同
非常感谢!
这是真话还是假话?
Unicode 是 ISO-8859-1 的超集,因此前 256 个 Unicode 字符对应于 ISO-8859-1。
当尝试渲染 \xc2\xa9 字符时,我在 Mojolicious 渲染器上发现错误(ascii:169)
\n\n(当尝试渲染大于 > 128 的 ascii 时也会返回错误)
\n\nTemplate "D:\\sandbox\\mojo\\templates\\BlueLeaves\\index.html.ep" has invalid encoding. at D:/Perl64/site/lib/Mojolicious/Plugin/EPLRenderer.pm line 44.\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试同时使用两者:
\n\nno utf8;\nRun Code Online (Sandbox Code Playgroud)\n\n和
\n\nuse utf8;\nRun Code Online (Sandbox Code Playgroud)\n\n但总是返回相同的错误消息
\n\n你知道如何解决这个问题吗?
\n我在替换(gsub)字符串中的特定字符时遇到问题.这是我的字符串:
string = "\n\t Tel.:\xA007031 / 11 11 11"
Run Code Online (Sandbox Code Playgroud)
\ xA0不是我想要的字符,所以我尝试用\ x20替换它(两者都是空格字符).为此,我将gsub称为:
string.gsub(' ', ' ')
Run Code Online (Sandbox Code Playgroud)
尝试这样做时,它返回"不兼容的编码正则表达式匹配(UTF-8 regexp与ISO-8859-1字符串)"错误.
任何关于如何解决这个问题的想法将不胜感激!
我正在解析来自HttpWebRequest.
此 Web 内容使用字符集ISO-8859-1,在解析它并最终从响应中获取所需的单词时,我收到了string一个像这样的问号?,我想知道哪种方法可以将其转换回可读的string.
所以,我尝试过的是将当前单词encoding转换成UTF-8这样:
(我想知道是否UTF-8可以解决我的问题)
string word = "ESPA?OL";
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf = Encoding.GetEncoding("UTF-8");
byte[] isoBytes = iso.GetBytes(word);
byte[] utfBytes = Encoding.Convert(iso, utf, isoBytes);
string utfWord = utf.GetString(utfBytes);
Console.WriteLine(utfWord);
Run Code Online (Sandbox Code Playgroud)
但是utfWord变量输出ESPA?OL里面还是错误的。正确的输出应该是ESPAÑOL.
如果可能的话,有人可以给我正确的方向来解决这个问题吗?
我正在编写一个需要读/写外部应用程序的第二个数据库的应用程序(使用UTF-8)(使用ISO-8859-1).
try {
// data in latin1
String s = rs.getString("sAddrNameF");
System.out.println(s); // shows "Adresse d'exp?dition"
byte[] data = s.getBytes();
String value = new String(data, "UTF-8");
System.out.println("data in UTF8: " + value);
// The expected result should be "Adresse d'expédition"
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
这段代码不起作用,我还需要做相反的转换(在数据库上写).如果有人知道在同一个应用程序中处理不同编码的优雅解决方案,请告诉我,我很感激.
从 Swift 发送 HTTP 请求后,我在响应中得到一个名为textEncodingName.
我想将data我也收到的对象转换为包含其内容的字符串,为此,我使用String(data: data!, encoding: .utf8). 这在大多数情况下都有效,因为大多数网站都是 UTF-8 编码的。但,例如https://www.google.co.uk,对response.textEncodingName == "iso-8859-1"。
我猜其他网站会使用更晦涩的编码,所以我的问题是:如何找到正确的编码将我的data对象转换为正确的字符串。
我想处理来自 CSV 文件的数据,但我意识到字母显示不正确。我尝试了数百万种方法来转换编码,但没有任何效果。在 MacOS、PHP 7.4.4 上工作。
在执行fgets()或fgetcsv()处理变量后,我会得到这个(示例中为 2 行/行)。
Kód ADM;Kód obce;Název obce;Kód MOMC;Název MOMC;Kód MOP;Název MOP;Kód èásti obce;Název èásti obce;Kód ulice;Název ulice;Typ SO;Èíslo domovní;Èíslo orientaèní;Znak èísla orientaèního;PSÈ;Souøadnice Y;Souøadnice X;Platí Od
1234;1234;HorniDolni;;;;;1234;HorniDolni;;;è.p.;2;;;748790401;4799.98;15893971.21;2013-12-01T00:00:00
Run Code Online (Sandbox Code Playgroud)
它或多或少是正确的捷克语,但字母?被取代è和?被取代ø,它们都不是捷克语字母表的一部分。我有信心,文件中会有更多错位的字母。
执行file -I path/to/file我收到file: text/plain; charset=iso-8859-1这很伤心,因为就维基而言,这个字符集没有包含捷克语字母表。
以下命令都没有转换错位的字母:
mb_convert_encoding($line, 'UTF-8', 'ISO8859-1')
iconv('ISO-8859-1', 'UTF-8', $line)
iconv('ISO8859-1', 'UTF-8', $line)
我注意到在ISO-8859-1 中,这ø封信有一个代码00F8。Windows-1250(包括捷克语 aplhabet)具有?带代码的正确字母,0159 …
我目前正在使用遗留代码.该项目是一个基于maven的大项目,其中一项任务是改变编码,从cp1252到utf-8 .ie.
<project.build.sourceEncoding>cp1252</project.build.sourceEncoding>
至
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Run Code Online (Sandbox Code Playgroud)
大多数代码已经是utf-8了,但是有一些xml文件没有,(并且它们的标题为<?xml version="1.0" encoding="ISO-8859-1"?>.)
我是否必须在其标题中手动将所有这些文件更改为utf-8,或者只需将Maven中的设置更改为UTF-8即可使用?我想通过这样做会有很多可能被破坏的角色?
我有一个问题,我需要能够检测字节数组是否包含符合ISO-8859-1编码的字符.
我发现以下问题有用Java:如何确定流的正确字符集编码,但没有一个答案似乎完全回答我的问题.
我试图使用TikaEncodingDetector,如下所示
public static Charset guessCharset(final byte[] content) throws IOException {
final InputStream isx = new ByteArrayInputStream(content);
return Charset.forName(new TikaEncodingDetector().guessEncoding(isx));
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这种方法基于字节数组的内容做出不同的预测.例如,包含'h','e','l','l','o'的数组被确定为ISO-8859-1.'w','o','r','l','d'出现在IBM500,'a','b','c','d','e'产生UTF-8.
我想知道的是,我的字节数组是否正确验证了ISO-8859-1标准.对于执行这项任务的最佳方式的建议,我将不胜感激.