标签: iso-8859-1

与编码无关的方式来读取“德语”文本文件

我们所有基于文本的文件均采用 UTF-8 或 latin-1 (Windows) 编码。我们使用的唯一“特殊字符”是德语变音符号 \xc3\xa4、\xc3\xb6、\xc3\xbc 和 \xc3\x9f。

\n\n

由于不同的原因(包括历史原因,也包括“属性文件不能是UTF-8”的老问题),我们无法完全统一我们的编码。

\n\n

当人们用 Java 读取文本文件并使用错误的编码时,这显然会导致错误。

\n\n

如果您知道唯一可能的特殊字符是上面指出的字符,是否有一种简单、可靠的方法来检测文件是 UTF-8 还是 latin-1。

\n\n

或者我是否需要将文件读取为字节数组并搜索特殊字节?

\n

java encoding utf-8 iso-8859-1

5
推荐指数
1
解决办法
2010
查看次数

UTF-8 到 ISO-8859-1 编码:用最接近的等效字符替换特殊字符

有谁知道Python 库可以让您以智能方式将UTF-8 字符串转换为ISO-8859-1 编码?

\n\n

所谓聪明,我的意思是用“-”左右替换“\xe2\x80\x93”等字符。对于许多确实无法想到等效字符的字符,请替换为“?” (就像encode(\'iso-8859-1\', errors=\'replace\')那样)。

\n

python encoding utf-8 iso-8859-1

5
推荐指数
1
解决办法
6687
查看次数

将包含 latin-1 字符的字节解码为十进制表示的字符串

我正在开展一个迁移项目,将 Web 服务器层从 python 2.7.8 升级到 python 3.6.3,并且在某些特殊情况下遇到了障碍。\n当从客户端收到请求时,有效负载将使用本地传输pyzmq 现在在bytespython3 中交互,而不是str(像在 python2 中一样)。

\n

现在,我收到的有效负载使用iso-8859-1 (latin-1)方案进行编码,我可以轻松地将其转换为字符串作为payload.decode('latin-1')并将其传递给下一个服务(svc- save-entity)需要字符串参数。

\n

但是,后续服务“ svc-save-entity ”期望非 latin-1 字符(如果存在)以 ASCII 字符引用(例如éfor \xc3\xa9)而不是十六进制(例如\\xe9for \xc3\xa9)表示。

\n

我正在努力寻找一种有效的方法来实现这种转换。任何Python专家都可以指导我吗?本质上我需要一个函数的定义decode_tostring()

\n
payload = b'Banco Santander (M\\xe9xico)'         #payload is in bytes\npayload_str = decode_tostring(payload)           #function to convert into string\npayload_str == 'Banco Santander (México)'  #payload_str is a string in ASCII Character Reference\n
Run Code Online (Sandbox Code Playgroud)\n

请的定义decode_tostring():) …

python iso-8859-1 python-3.x python-3.6

5
推荐指数
1
解决办法
1858
查看次数

___编码为UTF-8 - 是否存在最终解决方案?

我浏览过网页,通过PHP文档等等,我已经看过了.

没有标准的解决方案似乎是一个荒谬的问题.如果您收到未知字符集,它有奇怪的字符(如英语引号),在那里将它们转换为UTF-8的标准方式?

我已经看到许多混乱的解决方案使用了大量的功能和检查,但它们都不会发挥作用.

有没有人提出自己的功能或总是有效的解决方案?


编辑

许多人回答说"这是不可解决的"或类似的东西.我现在明白了,但是没有人提供任何有效的解决方案,除此之外utf8_encode非常有限.有什么方法可以解决这个问题?什么是最好的方法?

php utf-8 iso-8859-1 character-encoding special-characters

4
推荐指数
2
解决办法
783
查看次数

iso-8859-1会显示德国变音符号还是我需要使用utf-8吗?

我有一个托管在服务器上的多语言网站,该服务器似乎将字符编码设置为默认为iso-8859-1.

我认为我最好拥有utf-8页面并包含一个meta标签来声明这一点.不幸的是,这个元标记似乎被覆盖,页面默认为iso-8859.

德语和荷兰语页面中的许多特殊字符无法正确显示.

我是否需要尝试将服务器默认更改为utf-8或其他内容?也许我可以完全删除服务器默认值?嗯......真的不确定这里最好做什么.

任何建议都会很棒!

utf-8 iso-8859-1 character-encoding http-headers

4
推荐指数
1
解决办法
2万
查看次数

将字节转换为ISO 8859-1编码时,空字节会发生什么?

我不完全确定这个问题是否有意义.我正在转换从ID3标签中取出的字节数组并将其转换为字符串.ID3标签中的大多数文本框架使用ISO 8859-1编码,但它取决于框架.在任何情况下,如果您查找ISO 8859-1代码中的0x00,它将无效.

为了进一步复杂化,无论是程序员错误还是格式化不当,一些字符串以0x00结尾,而另一些则不然.

使用ISO 8859-1编码将一系列字节转换为字符串时,您是否手动检查字符串的结尾以查看它是否为空?或者编码对象将通过它用于转换的任何方法在第一时间正确处理null?此外,是否有某种函数可以规范化或"修复"空终止字符串?

当您尝试显示这些字符串时,它们无法正确显示.

我在这个特定项目中使用C#.关于ID3的一些额外信息标签:ID3规格

还是我完全误解了整件事?null终止符只是一种特定语言处理字符串的方式,它与编码无关吗?

  • 编辑:我使用System.Text.Encoding.GetEncoding("iso-8859-1"),然后是GetString调用

c# encoding id3 iso-8859-1

4
推荐指数
1
解决办法
1155
查看次数

UTF-8现在是非ASCII字符的QR码的首选编码吗?

谷歌使用UTF-8作为其非常流行的编码器的默认值.从我所看到的,他们甚至没有添加字节顺序标记.

问题是大多数扫描仪似乎仍然使用JIS8(QR 2000)而不是iso-8859(QR 2005)作为默认值,因此它主要不能使用iso-8859进行编码.

似乎utf-8是唯一的选择,即使它违反了规范.

编辑:我将使用没有ECI而没有BOM的utf-8.反对所有的规范和精神,但目前效果最好.

encoding qr-code utf-8 iso-8859-1 character-encoding

4
推荐指数
2
解决办法
6580
查看次数

ISO-8859-1是Unicode字符集吗?

我一直在参加关于XML的讲座,其中写着"ISO-8859-1是一种Unicode格式".这对我来说听起来不对,但是当我研究它时,我很难准确理解Unicode是什么.

你能称ISO-8859-1为Unicode格式吗?你有什么称呼Unicode?

unicode iso-8859-1 character-encoding

4
推荐指数
3
解决办法
1万
查看次数

UTF-8文件中的PHP源代码; 如何正确解读?

我构建了分析源代码的工具.这些工具必须正确读取源代码文件,特别是在字符编码方面.例如,"字符串文字中的精确字节串是什么?" (PHP文字和HTML文本).

我可能错误的理解是PHP源文件只是8位字符(也就是说,PHP引擎以这种方式读取它们,因为它们只应该包含8位字符).但是,八位字符在哪个编码?(我认为打算匹配ISO-8859-1(-x?)[有人可以引用章节和经文吗?].也就是说,变音符号是一个变音符号,对吗?接下来,可以用HTML编写PHP脚本和大多数欧洲国家的字符串/字符集直接.

但很明显,Unicode存在问题.据我所知,大多数PHP应用程序主要通过包含UTF-8字节序列的字符串来处理Unicode,这些字符串可以插入8位PHP字符串中.在此之后,如果您告诉服务器您正在生成UTF-8文本,则可以生成其HTML包含Unicode UTF-8序列的脚本.

对于上述情况,可以将PHP文件读取为8位字符文本,这似乎与我的语言相匹配.

令我困惑的是编码为UTF-8的PHP源文件(Joomla软件包有大约1800个源文件,其中大约10个是UTF-8,其余的不是).在UTF-8渲染中正确显示的任何(非ASCII)欧洲字符实际上都被编码为多字节序列.我认为这些用作UTF-8的页面将正确呈现HTML.但是,在文本编辑器中显然正确呈现的欧洲字符或其他Unicode字符的任何字符串比较都是行不通的.字符串文字不包含它们似乎包含的内容.程序员是否使用UTF-8文件,因为这是编辑提供的?他们是故意这样做的吗?或者只是一场对大多数工作无关紧要的事故?

那么,如何读取PHP源文件呢?(特别是,在什么字符编码?)一个可能的答案是,始终作为ISO-8859-1 8位代码,无论实际内容或BOM(我看到很多UTF-8 BOM标记的PHP文件).另一个答案是UTF-8,如果这样标记的话.

[我们的工具读写任意编码."普通"工具是读取文件一个字符的编码,在另一个编码中写入相同的代码点.以这种方式读取UTF-8 PHP文件会让我们在编写ISO8859-1等效文件时遇到麻烦,因为许多UTF-8代码点(例如,欧元符号)无法在ISO8859-x中编码.

编辑8月30日:我们现在检查PHP文件以查看是否具有UTF-8 BOM,或者看起来是否具有合法的UTF-8序列.在这两种情况中,我们将文件读为UTF-8; 否则我们默认将其读作ISO8859-1.我们现在保留文件编码,如果我们修改它.(正确的做法是相当多的工作).这似乎是一种安全策略,但这可能与PHP程序员所期望的不同.

php code-analysis utf-8 iso-8859-1

4
推荐指数
2
解决办法
4154
查看次数

cfquery文本编码问题

我有一个cfquery标签的编码问题.

这是我的代码:

<cfquery name="query" datasource="example">
    SELECT *
    FROM EXAMPLE_TABLE
    WHERE EXAMPLE_COLUMN = 'WORD WITH ACCENT É'
</cfquery>
Run Code Online (Sandbox Code Playgroud)

在对查询变量执行cfdump时,cfquery标记生成的sql将文本更改为'WORD WITHACCENTÉ'但我需要它为É,因为表中的值是这样设置的.有没有办法改变cfquery标签的编码?

我尝试使用cfcontent标记更改页面的编码无济于事.我也尝试使用SetLocale()而没有太多结果.

谢谢.

sql sql-server coldfusion utf-8 iso-8859-1

4
推荐指数
1
解决办法
1085
查看次数