TextPad和Unicode:全面支持吗?

17

我有一些在Mac上创建的UTF-8文件,但是在Windows中使用TextPad尝试打开它们时,我会收到以下警告:

警告:(文件名)包含在代码页1252(ANSI Latin 1)中不存在的字符。如果您单击“确定”,它们将被转换为系统默认字符。

Linux(GNOME gEdit)可以打开相同的文件而不会出现问题。这意味着什么?我认为TextPad具有完全的UTF-8支持。我能否安全地使用它打开和编辑UTF-8文件而不损坏文件?


总是有同样的问题。TextPad很棒,但在字符编码方面很糟糕。为了规避这个问题,我将CSS文件中所有图标定义行放入单独的CSS文件中。然后我使用记事本编辑此文件。 - reggie
4
TextPad 8已经发布,支持BMP Unicode(参见https://dev59.com/JGox5IYBdhLWcg3w74u3#35076216)。 - Lawrence Dol
7个回答

12

似乎TextPad无法处理Windows-1252(CP1252,这里是“ANSI Latin 1”不准确的说法)之外的字符。我在Windows上测试了它,在同一系统上创建的纯文本文件以UTF-8编码打开,有无BOM都得到相同结果。该程序的帮助文件中似乎没有与字符编码相关的内容,并且其用于写入“国际字符”的工具仅限于Latin-1字符。

有几个适用于Windows的文本编辑器可以处理UTF-8(即使Notepad也可以打开UTF-8文件,但难以推荐用于严肃编辑)。请参阅Alan Wood关于Windows Unicode编辑器和文字处理器的信息。(我个人喜欢Notepad++和BabelPad,两者都是免费的。)


TextPad 的规范明确指出:「可以编辑 16 位 Unicode、UTF-8 和 8 位文本文件,并支持单字节和双字节字符。」 - David Heffernan
3
TextPad 帮助文件对编码的说明有些令人困惑,但在“打开”对话框中将编码设置为 UTF-8 并没有帮助。在“配置/首选项”中将默认编码设置为 UTF-8 也没有帮助:数据仍然被压缩为 windows-1252 编码(即,编码外的字符会被映射到 windows-1252 字符或问号或其他字符)。他们说:“这意味着只有包含隐含代码页字符的文件才能进行编辑,而不会丢失数据。”(TextPad 帮助,关键字“Unicode”) - Jukka K. Korpela
1
非常奇怪。当有Notepad++存在时,无法理解为什么要为这样的产品付费! - David Heffernan
1
@DavidHeffernan:TextPad规范“遗漏”了Jukka K. Korpela / bobince指出的局限性。 "Unicode,UTF-8和单字节字符和双字节字符的8位文本文件可进行编辑。" 但他们真正意思是:“一小部分的……”作为一名付费客户,多年前我就抱怨了缺乏真正的UTF-8支持(尽管声称支持)当时他们还停留在主要版本4和5; 并尝试了所有可能的配置,使用所有可用的建议! TextPad工作人员回应了其他支持询问,但在此问题上他们一直神秘沉默! - Matthew Slyman
1
很遗憾。我一直是TextPad的忠实粉丝,并成功地让两个不同的组织授权使用整个团队。然而,我的新任务需要使用Unicode,而单字节编辑器已经无法胜任。Eclipse可以很好地编辑Unicode。声称可以编辑“16位Unicode、UTF-8……”在我看来几乎是欺诈:它可以读取这些编码的文件,但只能转换为内部的8位编辑器。你无法编辑日语字符——无论你怎么摆弄都不行。TextPad多年来一直是一个很棒的工具,但现在是时候转型了...... - AgilePro

9

截至2016年1月28日,最新版本的TextPad 8终于完美支持BMP Unicode。这是一个付费升级版本,但目前对我来说一直运行良好。


1
是的,但是...即使txt类已配置为始终转换为utf8,文件命令返回utf8,notepad ++正确打开文件,txt类选择了unicode字体,它将ä和ö转换为破碎的字符,假定ANSI,但如果插入非ANSI代码页字符,如西里尔字符,则正确假定utf8。对我来说,这是一个错误,而不是一个功能,是的,NotePad++可以正确处理它。 - Yordan Georgiev

6
TextPad仅支持导入和导出UTF-8和UTF-16文件。但它仍然将文件编辑为简单字节,而不是Unicode字符(使用ANSI代码页,对于西欧来说是代码页1252)。
所以,除非文件包含的字符也存在于该代码页中,否则您将丢失内容。这实际上违背了使用Unicode的初衷。
确实,这是导致我转向EmEditor的问题,在当时,不过现在我同意之前的评论并推荐Notepad++。付费文本编辑器的时代已经过去了。

1
如果我今后在stackoverflow上只能说一件事,那就是尝试使用emeditor。非常棒。 - sksamuel

5
实际上,TextPad支持显示Unicode编码点,但他们的方法不正确。要显示Unicode字符,您需要选择“配置-偏好设置”,然后展开“文档类别-文本-字体”。您需要选择一个Unicode字体并设置匹配的脚本,例如使用CHINESE_BIG5脚本的Arial Unicode MS字体。
然而,这种方法是倒退的,因为应用程序应当在用户告诉TextPad以Unicode或UTF-8格式打开文件时处理此问题。内置于MS Windows的记事本应用程序将自动检测编码,并根据编码正确地显示字形。

2
即使是Arial Unicode MS也不包含我想要的所有字形;如果我作为一名付费客户和计算机科学毕业生,在阅读了TextPad的帮助文件、论坛等之后,仍然无法想出如何制作一个多语言(甚至只是泛欧洲)的UTF-8源代码文件,并且在尝试联系支持部门后仍然无法解决问题,那么就有严重的问题了(因为TP导致我浪费了很多时间来处理损坏的UTF-8 SQL转储!)。如果TextPad的开发人员要声称他们的产品支持Unicode,那么他们至少应该在这个声明旁边加上一个星号! - Matthew Slyman

3
我在Textpad论坛上找到了一篇讨论: http://forums.textpad.com/viewtopic.php?t=11019 虽然我也用过Notepad++,但是相比之下,Textpad可以轻松处理大文件,而其他编辑器(包括Notepad++)在处理大文件时要么变得非常缓慢,要么根本无法运行。我现在正在尝试编辑一个475MB的文件,但是Notepad++无法胜任这个任务。

大文件:我认为这是由于文本高亮显示所需的内存更多。Notepad++无法解决此问题,因为这是Notepad++使用的Scintilla组件的限制,用于显示文本。 - StanE
EmEditor是专门设计用于优雅地处理大文件的文本编辑器。在我的经验中(例如,在64位Windows计算机上使用4GB RAM的情况下,处理大小为5-15 GB的SQL文件),它表现得非常出色。 (在这种情况下,任何文本编辑器进行全局查找和替换等某些操作都会很慢,但EmEditor采取实用的方法来尽可能地完成任务。) - Matthew Slyman

2

Textpad配置菜单 --> 首选项 --> 文档类别 --> 默认 --> 默认编码 --> UTF-8


(说明:此段内容为关于文本编辑器Textpad中设置默认编码为UTF-8的步骤)

-2

尝试使用File/Open打开ANSI代码集,这应该可以解决TextPad中的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接