出于某种奇怪的原因,我的电脑突然不再显示某些 unicode 字符了!我不知道发生了什么。
受影响的应用程序包括Windows Explorer(应该是日文字符)、Google Chrome(应该是一颗心)和Winamp(应该是星星):
俄文、德文等字符显示正常。Chrome 还会在网站上显示日语脚本,但不会在 GUI 中显示。我该如何解决?
TL;DR:解决方法是在桌面上放置一个带有 Unicode 名称的快捷方式,以便 explorer.exe 是启动后第一个显示 Unicode 字符串的进程。
更新:我尝试使用系统还原来修复它。我需要回到过去很长一段时间,因为最近的还原点没有解决它,所以我从 11 月中旬开始使用一个。恢复后,Unicode 符号再次显示。然后我再次使用 Windows Update 更新了我的系统,因为这些在恢复过程中被删除了。之后,错误再次发生!然后我在我的新更新之前恢复到一个点,但错误仍然存在,并且旧的恢复点(我以前使用过)消失了,目前没有系统的其他快照。现在有什么建议吗?
更新 2:我可以找到解决方法:
控制面板?地区和语言? 行政?更改语言对Unicode的不兼容的程序,以日本(日本)。
所有提到的程序再次正确显示它们的符号。但是,我不认为这是一个修复程序,因为这些程序通常与 Unicode 不兼容,并且还会导致某些程序中出现一些(非严重)伪影。我仍然欢迎一个答案,告诉我这里出了什么问题以及如何解决这个问题。
更新 3:我想我已经隔离了导致错误的特定 Windows 更新。这是在使用的DirectWrite API运行Windows 7或Windows Server 2008 R2的计算机上的应用程序性能下降。我已经安装了除了这个更新之外的所有其他更新,并且错误没有再次发生。
更新 4:此问题的真正根源是 Chrome,请参阅已接受的答案。解决方法:在桌面上放置带有 Unicode 名称的快捷方式,以便 explorer.exe 是启动后第一个显示 Unicode 字符串的进程。
有什么方法可以避免或防止在 Windows PC 中写入或读取名称中带有 RLO(从右到左覆盖)Unicode 字符的文件(一种恶意软件方法来欺骗文件名)?
有关 RLO unicode 字符的更多信息,请访问:
有关 RLO unicode 字符的信息,因为它被恶意软件使用:
2011 年 10 月计算机病毒/未经授权的计算机访问事件报告摘要,由日本信息技术振兴机构 (IPA) [ Mirror (Google Cache) ]编制
您可以试试这个RLO 字符测试网页,看看 RLO 字符是如何工作的。
RLO 字符也已粘贴到该网页的“输入测试”字段中。尝试在那里输入并注意您输入的字符以相反的顺序出现(从右到左,而不是从左到右)。
在文件名中,RLO 字符可以专门定位在文件名中,以欺骗或伪装成具有与实际不同的文件名或文件扩展名。(即使未选中“隐藏已知文件类型的扩展名”,仍将被隐藏。)
我能找到的唯一有关如何防止运行带有 RLO 字符的文件的信息来自日本信息技术促进局网站。
任何人都可以推荐任何其他好的解决方案来防止名称中带有 RLO 字符的文件在计算机中被写入或读取,或者在检测到带有 RLO 字符的文件时提醒用户的方法吗?
我的操作系统是 Windows 7,但我将寻找适用于 Windows XP、Vista 和 7 的解决方案,或适用于所有这些操作系统的解决方案,以帮助人们也使用这些操作系统。
以 Unicode 格式读取任何数据在 Linux 终端中都无法正确显示(意思是在没有 X 窗口的情况下打开的虚拟终端)。
我在这里的讨论中读到安装JFBTERM 之类的程序,它确实有效,所以我想知道是否没有任何方法可以配置(控制台字体?)终端以在没有任何额外软件的情况下正确处理 unicode。
在 Windows 终端(gnome-terminal、xterm 等)上,它看起来像这样:
在虚拟终端上它看起来像这样:
在带有 JFBTERM 的虚拟终端上,它看起来像这样:
这是输出的屏幕截图locale
:
这是输出showconsolefont
:
有谁知道是否可以仅使用默认虚拟终端来完成相同的操作?
是否存在与占据上位的下划线“_”等价的字符?破折号“ - ”不会做。如果是我,我会称它为高分。但我在任何地方都看不到这一点。
背景:
我正在使用 DejaVu Sans Mono for Powerline 字体,通过 .Xresources 行指定:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
当我启动 urxvt 时,unicode 字符无法正确呈现。
例如
? 呈现为 â
但是,如果我然后urxvt
从第一个终端内部开始一个新的,一切都会正确呈现。
两个终端之间的环境似乎没有任何差异。
第一次调用和嵌套调用之间有什么区别?我怀疑“外部”实例中的字体不正确,但我不确定如何检查正在运行的 X 窗口的字体
更新:似乎在 xfce4 的应用程序启动器中没有正确设置语言环境,但大概第一个终端内的外壳初始化它自己的语言环境,这意味着两个外壳具有相同的语言环境。
添加
export LANG=en_GB.UTF-8
Run Code Online (Sandbox Code Playgroud)
在 xfce4 启动之前到 .xinitrc 似乎修复了它。我怀疑这不是正确的方法,但它对我来说效果很好。
屏幕截图演示了问题:
注意:我从 serverfault.com 移动了这个问题 - 我希望这个站点更合适
当我尝试在记事本中保存带有非英语文本的文本文件时,我可以选择在Unicode、Unicode Big Endian和UTF-8之间进行选择。这些格式有什么区别?
假设我不想要任何向后兼容性(与较旧的操作系统版本或应用程序)并且我不关心文件大小,这些格式中哪种更好?
(假设除了其他语言之外,文本还可以是中文或日文等语言。)
注意:从下面的答案和评论看来,在记事本行话中,Unicode 是 UTF-16(Little Endian),Unicode Big Endian 是 UTF-16(Big Endian),而 UTF-8 是 UTF-8。
我确定这是一个编码问题,但我无法弄清楚。
我将 Excel 中的电子表格导出为 UTF-8 CSV。这生成了 UTF-8-BOM 字符编码的 CSV。在 Notepad++ 中打开这个文件,大部分字符都被正确渲染 - 包括非 ANSI 字符,如ø
. 但是,连字符 ( ?
) 显示为?
。
我相信这个角色是U+2010 ? HYPHEN
.
如果我在Notepad 中打开文件,连字符显示正确。如果我使用Vim读取文件或cat
将其打印到终端,它也会正确显示。
最后,文件的八进制转储显示十六进制字节e2 80 90
,这是U+2010 - HYPHEN
Unicode 字符的 UTF-8 编码。
那么为什么 Notepad++ 将这个字符显示为?
?
我注意到 Unicode 字符在某些应用程序中突然停止显示,到目前为止 Notepad++ 和 Skype,当它们之前出现时。相反,它们显示为框。他们以前工作过,但我相信它在重新启动后坏了。我什至可以在 Skype 输入窗口中输入它们并查看它们,但是在提交消息后它们显示为框。
例如: ??和 ?不会出现在 Skype 或记事本++中,但当我输入这个时,它们在 Chrome 中显示得很好。
在上次重新启动之前或之后没有安装新软件,唯一发生的是一些 Windows 更新。Notepad++ 中的文档将编码设置为 UTF-8
视窗 7 x64
一封来自同事的电子邮件在句子的末尾包含了这个字符,在这种情况下,人们可能会期待标点符号或笑脸。
这是什么性格?它的谷歌搜索结果为零,unicodelookup.com也不会让我变得更聪明。
它有意义吗?如果没有,怎么会有人输入这样的字符作为错别字?
我最近在Sci-Fi Stack Exchange上遇到了这个答案。它似乎是用一种字体设计的,看起来像难以阅读的老式笔迹。因此,为了更容易阅读,我将它复制/粘贴到 gedit(一个不支持格式的文本编辑器——如记事本)。令我惊讶的是,奇怪的格式保留了下来。在进一步检查后(即,谷歌搜索最奇怪的字符,注意到年份似乎部分正常书写)我得出的结论是它们是 Unicode 中的一组奇怪的类似字母的字符。
我的问题有两个部分: