Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1 translation suggestion, 1 problem #14

Open
ajfg93 opened this issue May 31, 2018 · 7 comments
Open

1 translation suggestion, 1 problem #14

ajfg93 opened this issue May 31, 2018 · 7 comments

Comments

@ajfg93
Copy link

ajfg93 commented May 31, 2018

FAQ 18:
problem:

The internal encoding is transparent to the script.

译文:

脚本并不知道字符串内部的实际编码。

这里不应该是”字符串内部编码对脚本来说是透明(知道)的吗“
suggestion:

Indexing operations would be counting code units rather than the code points, as they in fact did before the change.

译文:

Python 在此次改进之前,字符串索引操作计数的是编码单元而不是码位。

我举得这样翻译更好理解:
就像Python在这次改进之前那样,字符串索引操作计数的应该是编码单元而不是码位。

@Jamesits
Copy link

“Transparent”应该指的是中间有一层,但是这一层对于上层不可见,所以这边对应“不知道”。

@m13253
Copy link
Member

m13253 commented May 31, 2018

Transparent 是指看不见、无法感知到。
相反,能感知到的是 opaque。
比如“transparent proxy”透明代理,“opaque pointer”不透明指针。

@m13253
Copy link
Member

m13253 commented May 31, 2018

我觉得第二条可以按照你的建议改一下。
不过提交到上游网站上需要时间,不妨等我们累积一些改动一起提交。

@ajfg93
Copy link
Author

ajfg93 commented May 31, 2018

想了一下觉得有道理。。原来transparent这样译,ok。

@ajfg93
Copy link
Author

ajfg93 commented Jun 6, 2018

@m13253 @Jamesits
前辈们好,我想借地问一下,就是在windows cmd或者是powershell如何输出unicode下utf8编码的字符呢?
因为我按照utf8everywhere的原则,连中文都不能在cmd正确输出了。
当然,我可以用MutiBytetoWideChar,WideChartoMutiByte这两个转换函数,将utf8的原生字符串转成wchar array再转成当前codepage的mutibyte char array。(但这也仅能转换GB2312里有的字符)
但是其他的unicode字符,比如https://unicode-table.com/en/1F607/ ,这个smile face,好像就真的没办法输出到cmd了。

@m13253
Copy link
Member

m13253 commented Jun 6, 2018

首先,原文中有说,Windows 控制台不支持 U+FFFF 以上的字符,所以这个笑脸是永远没有办法输出的。

如果是 U+FFFF 以内的非本代码页字符,可以用 WriteConsoleW 的 C 函数来写出(这也是唯一办法)。

对于最新版 Windows 10,你也可以 chcp 65001 之后直接 printf UTF-8,但是中文输入法好像会坏掉。

如果你是写 C++ 的,可以用我的 libWinTF8 这个轻量库来实现简单的 UTF-8 输入输出。

如果你是写 .bat 或者 .ps1 文件,那么(对于最新版 Windows 10)把源代码存成 UTF-8 with BOM,(对于旧版 Windows)把源代码存成 UTF-16 with BOM,就可以直接 echo 非本代码页字符。

P.S. 你可以试试看 ConEmu 这个软件来代替掉 Windows 原有的控制台。似乎 Unicode 支持还不错,但是性能不好,bug 多。

@ajfg93
Copy link
Author

ajfg93 commented Jun 6, 2018

我还是用Git Bash看输出算了,谢啦。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants