标签: iso-8859-1

将ISO-8859-1/Latin-1转换为字符串(UTF-8)有哪些选择?

我扫描了Rust文档,以便在字符编码之间进行转换,但没有找到任何内容.我错过了什么?

是否由Rust语言及其标准库支持(直接或间接),甚至计划在不久的将来?

由于其中一个答案表明有一个简单的解决方案,因为u8可以转换为(Unicode)chars.Unicode是ISO-8859-1中代码点的超集,即1:1映射,它编码为UTF-8中的多个字节,这是StringRust 中s 的内部编码.

fn main() {
    println!("{}", 196u8 as char);
    println!("{}", (196u8 as char) as u8);
    println!("{}", 'Ä' as u8);
    println!("{:?}", 'Ä'.to_string().as_bytes());
    println!("{:?}", "Ä".as_bytes());
    println!("{}",'Ä' == 196u8 as char);
}
Run Code Online (Sandbox Code Playgroud)

得到:

Ä
196
196
[195, 132]
[195, 132]
true
Run Code Online (Sandbox Code Playgroud)

哪个我甚至没有考虑过工作!

iso-8859-1 character-encoding rust

6
推荐指数
2
解决办法
2361
查看次数

在Windows Phone 7中使用特定编码的UrlEncode?

在"常规".NET中,有一个UrlEncode方法,它接受一个Encoding参数.WP7的.NET中没有这样的UrlEncode方法吗?

我位于瑞典,我正在尝试从请求中需要ISO-8859-1的REST服务中检索数据(但是以UTF-8响应).当进行搜索(input=frölunda)并且只使用UrlEncode时input=fr%C3%B6lunda,由于"缺失"ö,我会得到非常奇怪的结果.使用带有iso-8859-1编码的.NET UrlDecode,我得到input=fr%F6lunda了返回所需的结果.

我是否必须实现自己的UrlEncode?

c# iso-8859-1 windows-phone-7

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

Utf-8:成功转换为iso-8859-1但不转换为iso-8859-2

我有一个关于MS Access的数据库,我通过调用PDO和odbc驱动程序与PHP一起使用.我的数据库中有法语,丹麦语和波兰语.对于法国人和丹麦人来说没有问题,但没有办法获得波兰人的角色,我只能得到"?" 代替.

这是代码:

    try{
 $db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=$dbName; Uid=Admin;Pwd=;");
  }
  catch(PDOException $e){
    echo $e->getMessage();
  }
  $answer = $db -> query("SELECT * FROM dict_main WHERE ID < 20");
      while($data = $answer-> fetch() ){
          echo iconv("iso-8859-1","utf-8",htmlspecialchars($data['DK'])) . ' ';
          echo iconv("iso-8859-2","utf-8",htmlspecialchars($data['PL'])) . ' ';
          echo iconv("iso-8859-1","utf-8",htmlspecialchars($data['FR'])) . ' ';
        }
Run Code Online (Sandbox Code Playgroud)

如果有人有想法,请告诉我,因为我用完了,似乎什么都没有用,或者我是否应该提供更多关于我没有想到的问题的信息.

php sql ms-access iso-8859-1 iso-8859-2

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

Websphere上的字符编码问题

关于在两个应用程序服务器(Websphere 8.0.0.3)中部署的应用程序,我有以下问题。

这些服务具有相同的配置文件(肯定的是,我导出了一个配置文件并将其导入到第三台应用程序服务器中),并且在读取和显示以iso8859-7编码的文件时遇到了问题。一台应用程序服务器正确显示它们,另一台显示文件中非ASCII字符的引号。另一个应用程序服务器在正确显示它们时没有问题。由于我怀疑问题并非出自Websphere,而是OS问题(在所有情况下均为Unix SLES),因此我从一个服务器导出了配置文件,并将其安装在第三个服务器上,并且似乎都可以正常工作精细。

为了解决这个问题,我已经部署了一个简单的servlet,以显示jvm的默认字符集。在有问题的显示器上显示US-ASCII,在有问题的显示器上显示UTF-8。以运行应用程序服务器的用户身份在unix终端中运行语言环境,在两台计算机上的en_US.UTF8上都设置了lang。

我要添加的最后一件事是,该应用程序还使用带有log4j绑定的slf4j写入日志文件。在有问题的服务器上,日志文件是ASCII,在好的服务器上是UTF-8。很显然,在日志中记录iso8859-7字符时,显示问号(?)而不是实际字符。

我的问题是我应该继续在Websphere中寻找配置错误问题还是这是操作系统设置问题

先感谢您

Vasileios Mylnakis

ascii utf-8 iso-8859-1 character-encoding

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

ftplib.cwd 错误:UnicodeEncodeError:'latin-1' 编解码器无法编码字符

有很多关于 'latin-1' codec 的帖子,但是这些答案并不能解决我的问题,也许是我的问题,我只是学习 Python 的菜鸟,有点。当我cwd(dirname)以前改变FTP站点的目录时,发生了unicodeerror。请注意,dirname包含中文字符,显然,这些字符会导致此错误。我按照之前帖子里的建议做了一些编码和解码,但没有奏效。有人能给我一些建议如何修复这个错误并使其cwd工作吗?

一些代码:

file = 'myhongze.jpg'
dirname = './??????/zgcao/test-python/'
site = '***.***.***.***'
user = ('zhigang',getpass('Input Pwd:'))    
ftp = FTP(site)
ftp.login(*user)            
ftp.cwd(dirname)# throw exception
Run Code Online (Sandbox Code Playgroud)

一些测试:

file = 'myhongze.jpg'
dirname = './??????/zgcao/test-python/'
site = '***.***.***.***'
user = ('zhigang',getpass('Input Pwd:'))    
ftp = FTP(site)
ftp.login(*user)            
ftp.cwd(dirname)# throw exception
Run Code Online (Sandbox Code Playgroud)

输出:

u'./??????/zgcao/test-python/'.encode('utf-8')
Run Code Online (Sandbox Code Playgroud)
b'./\xe9\xa1\xb9\xe7\x9b\xae\xe6\x88\x90\xe5\x91\x98\xe8\xb5\x84\xe6\x96\x99/zgcao/test-python/'
Run Code Online (Sandbox Code Playgroud)

输出:

u'./??????/zgcao/test-python/'.encode('utf-8').decode('cp1252')
Run Code Online (Sandbox Code Playgroud)
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 10: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)

输出:

u'./??????/zgcao/test-python/'.encode('utf-8').decode('latin-1')
Run Code Online (Sandbox Code Playgroud)

值得注意的是,??????被表现为ÏîÄ¿×é³ÉԱ˽È˿ռä当我用 …

python ftp iso-8859-1 ftplib

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

Javascript 将字符串从 utf-8 转换为 iso-8859-1

我知道这听起来很糟糕,但这是必要的。

\n\n

我在一个使用 utf-8 字符集的网站上有一个 HTML 表单,该表单被发送到使用 iso-8859-1 字符集的服务器。问题是服务器无法正确理解我们在西班牙使用的字符,例如\xc3\xa0, \xc3\xa1, \xc3\xa8, \xc3\xa9, \xc3\xac, \xc3\xad, \xc3\xb2, \xc3\xb3, \xc3\xb9, \xc3\xba, \xc3\xb1, \xc3\xa7等等。因此,如果我搜索类似的内容,art\xc3\xadculo它会找不到任何答案art\xc3\x83\xc2\xadculo

\n\n

我使用 ajaxform ( http://malsup.com/jquery/form/ )发送表单,代码如下:

\n\n
$(".form-wrap, #pagina").on("submit", "form", function(event){\n    event.preventDefault();\n    $(this).ajaxSubmit({\n\n        success: function(data){\n            $("#temp").html(data);\n            //Handle data in #temp div\n            $("#temp").html(\'\');\n        }\n    });\n    return false;\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的问题是:我无法访问搜索服务器,并且无法将整个网站更改为 iso-8859-1 编码,因为这会破坏其他内容。

\n\n

我已经尝试过这些脚本但没有成功:

\n\n\n\n

我可能做的一切都是错的吗?

\n\n

编辑:escape函数对我来说没有用,因为它将这些空格字符转换为%对服务器无用的前缀代码,然后它搜索art%EDculo.

\n\n

使用encodeURIComponent …

javascript jquery encoding utf-8 iso-8859-1

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

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

我们所有基于文本的文件均采用 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
查看次数

将 Git 存储库从 ISO-8859-1 转换为源代码文件的 UTF-8 编码

本周末我将使用fast-export将一个大型 Mercurial 项目转换为 Git 。我已经测试了几次,结果很好。

我们还想将我们的源代码编码(大量带有变音符号的德语注释/字符串文字)从 ISO-8859-1 转换为 UTF-8(repo 中的所有其他非 Java 文件应保持原样),并且Git 迁移让我们有机会现在就这样做,因为无论如何每个人都需要再次克隆。但是,我没有找到一个好的方法。

  1. 我已经尝试过这个评论中git filter-tree --tree-filter ...方法SO。然而,虽然这看起来很理想,但由于存储库的大小(大约 200000 次提交,18000 个代码文件),它需要的时间比我周末的时间长得多。我试过直接从具有 72 个内核的 linux VM 上的 64GB tmpfs 卷运行它(在一个高度优化的版本中,文件列表被分块,子列表被并行转换(使用GNU 并行),但它仍然会需要几天...
  2. 或者,我尝试了一种简单的方法,即在任何活动分支上单独执行转换并提交更改。然而,结果并不令人满意,因为在合并或挑选转换前提交时,我几乎总是会遇到冲突。
  3. 现在我再次运行方法 1,但不是试图重写所有分支的完整历史记录(--allas <rev-list>),而是所有提交都可以从当前活动分支到达,并且无法通过某些过去的提交到达,这(希望)是所有当前分支的前身分支(branch-a branch-b branch-c --not old-tag-before-branch-a-b-c-forked-off作为<rev-list>)。它仍在运行,但我担心我不能真正相信结果,因为这似乎是一个非常糟糕的主意。
  4. 我们可以像方法 2 一样通过正常提交切换 master 分支中的编码,但这同样会使从/到 master 的挑选修复成为灾难。它会引入很多编码问题,因为开发人员在主分支和未转换分支之间切换时肯定会忘记更改他们的 IDE 设置。

所以现在,我觉得最好的解决方案可能是坚持 ISO-8859-1。

有没有人有想法?有人提到,也许reposurgeon基本上可以使用它的transcode操作来做方法 1 ,git filter-tree --tree-filter ...但我不知道它是如何工作的。

git encoding utf-8 iso-8859-1 reposurgeon

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

将包含 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 字符引用(例如&#233;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&#233;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
查看次数