寻找一个支持UTF-8编码的文本编辑器

5
我正在寻找一个(简单的)文本编辑器,可以处理同一文档中以不同编码方式表示的文本。
我需要开发一些同时包含日语和英语文本的站点,但我现有的编辑器(在英语Windows系统上)无法显示日语文本。 Jedit文件不显示我输入的日语文本,但在浏览器中查看文件时则正确显示。 Gvim在编辑器中显示所有日语文本为问号,浏览器中也是如此。 在Gvim中,输入汉字有效(您输入发音,然后按空格键获取汉字),但确认所需汉字后,该汉字会被替换为问号。(每个汉字一个问号)
请问是否有人能推荐一个文本编辑器来编辑HTML和PHP文件,能够显示UTF-8编码的文本,并且将其保存为UTF-8文件?
谢谢。
阅读关于Emacs的说明后,我已安装它。请参见下文。
感谢大家的提示。 如果您还没有Unicode字体,则必须在线查找或购买一个。 以下是在Windows系统上安装字体的说明http://support.microsoft.com/kb/314960
我在Jedit中将字体更改为UTF字体,现在日语显示正常。 输入日语仍然有问题,因为你看不到自己在输入什么。 (要更改编辑文件的字体,请转到“实用工具”->“全局选项”->“文本区域”,选择Unicode字体,您就可以看到日文字母了。)
我仍在努力弄清楚如何在gvim中添加字体。一旦我知道该怎么做,我会更新此内容。
Emacs无法正确显示汉字,它们显示为“?”但至少我能够看到我用日语键入的内容并选择正确的单词。
所以目前我必须说,在jEdit中我可以看到日文文本,但无法输入日文文本。 Gvim我可以输入日文文本,但在文本区域内显示为“?”,Emacs也是如此。 在emacs和gvim中添加字体可惜并不是一个简单的任务。 目前我使用带有Arial Unicode MS字体的记事本作为我的日语编辑器,并保存为UTF-8文件。虽然不理想,但至少可以工作。

4
这是一个可怕的要求:“同一文档中使用不同编码方式”。如果有人创建这样的格式,他应该被解雇。使用Unicode,并忘掉那些无聊的事情。此外,即使您不能使用Unicode,所有日语代码页都可以轻松支持英语+日语。 - Mihai Nita
你听说过一个叫做“Unicode源代码文本编辑器”的东西吗?它几乎包括了所有功能。如果追求简单,Notepad++也是不错的选择。 - nawfal
@MihaiNita,读到第一句话时我的反应也是这样,但幸运的是,通过“同一文档中使用不同的编码”,OP似乎只是指“在同一文档中同时使用日语和英语文本”(两者都是Unicode,并以UTF-8编码)。事后看来,OP的问题似乎仅仅是没有好的系统字体来显示日语字符,而这个问题现在可能已经解决了。 - ShreevatsaR
23个回答

13

强烈建议使用Notepad++。


1
是的,但是Notepad++似乎不支持ANSI编码下的日语字符。此外,有时它会“忘记”文档实际上是UTF8(无BOM)格式的UTF文档。因此,如果在将编码设置回UTF8之前按保存按钮,您的日语字符将被破坏。希望这个问题能尽快得到改善。 - James John McGuire 'Jahmic'
Notepad++ 做了一些奇怪的事情。有时候仅仅是改变显示代码页,就会改变文件的长度。有时候仅仅是改变显示代码页,就会要求保存,但这不应该改变文件内容。 - Thomas Weller

6
< p> Emacs可以正确处理UTF-8编码。(当然,它也可以编辑HTML和PHP文件)。


6
我仍然建议使用Vim。你看到的问号问题可能是你使用的字体引起的。当显示包含当前语言中没有字符的文本时,应用程序通常会将它们显示为空框或问号。请参见这里了解Vim中UTF-8支持。
Vim手册的此部分也很有帮助,特别是在Windows中设置UTF-8方面。

1
在Windows上,如果你看到问号,那么意味着字符编码已经损坏了——例如,你试图将UTF-8显示为普通的ANSI编码——如果这是字体的问题,你会看到方框。 - 1800 INFORMATION
这些字符来自http://osdir.com/ml/linux.debian.packages.vim.devel/2006-11/threads.html#00014。在我的系统上显示为问号。从上下文来看(看起来是随机的),它们似乎是我系统无法显示的字符。 - Mark A. Nicolosi
这是另一堆盒子 http://blogs.msdn.com/michkap/archive/2008/10/12/8996692.aspx - 1800 INFORMATION
嗯,如果你找到来源,请在这里放置。虽然我不确定这是否与编程有关,但我会将其发布为一个问题。 - Mark A. Nicolosi
显示剩余3条评论

5
大多数支持Unicode的文本编辑器存在一个问题:当你选择一种字体后,它们会坚持使用这种字体。如果该字体没有包含某个字符的字形,则会使用默认替换字符(我认为是U+FFFD,替换字符)。
相比之下,Web浏览器通常会在系统提供的所有字体中寻找要显示的字符的字形。
因此,如果您没有"Arial Unicode MS"或类似字体(包括日语字形),则需要一种编辑器尝试将字形与所选字体以外的其他字体匹配。
在有人提供这样的编辑器链接之前,我建议使用一种(有些极端的:) 编辑器:
  • 安装最新的稳定Python 2.x版本 (适用于MS Windows)(目前为2.6)。
  • 在安装过程中包含"idle"。
  • 开始→程序→Python 2.6→Idle(Python Gui)
"idle"编辑器通常用于编辑Python代码(并在Python shell中进行交互式测试)。然而,它也可以用作纯粹的完全支持Unicode的文本编辑器,并且在保存包括非ASCII字符的文本时,默认使用UTF-8编码。
现在,idle基于Tkinter,Tkinter是一个接口,用于tk,tk是一个tcl的GUI库;tcl/tk像Web浏览器一样,当被要求显示小部件字体中不存在的字符时,会搜索其他字体。
尽管这看起来有些牵强,但我真的相信它会有所帮助;如果没有其他解决方案可以帮助您,请试一试。

5

Vim对我来说是一个很好的UTF-8文本编辑器。

首先,您需要一个包含所使用字符的字体。更换其他文本编辑器无济于事(除非它在您使用的字体中找不到正确的字符时搜索其他字体)。如果您正在使用gVim,可以设置字体如下:

set guifont=Consolas

这并不意味着Consolas是你想要的字体。你可能想把它放在.vimrc文件中,以便始终使用。

其次,Vim需要将文件解释为UTF-8格式,它并不总是自动执行。要做到这一点,请执行以下操作:

set encoding=utf8

您还可以使用以下命令查看所使用的编码:

set encoding?

4

EmEditor是由一家日本公司专门为此目的编写的。它是一款优秀的文本编辑器,具有良好的性能/简洁性,但几乎拥有所有功能,这是一个有能力的编辑器所期望的;我在Windows平台上使用它作为我的默认编辑器,以及用于编辑日语网页模板。在我看来,它值得更多人知道;它至少和TextPad一样好,并且支持完整的Unicode。

不幸的是,它不是免费的,但是您可以在download.com等网站上找到旧版EmEditor 6的免费版本。


3
你可以使用记事本应用程序和“Arial Unicode MS”字体(如果所有文本都是从左到右,且使用英语版的 Windows)。只需选择“另存为”,然后选择 UTF-8 编码方式即可。
通常情况下,你可以使用自己喜欢的编辑器和类似于“Arial Unicode MS”的字体。我提到这个字体是因为它是我见过覆盖最广泛的 Unicode 字体之一。

3
尝试使用BabelPad。编辑方面很简单,支持Unicode方面真棒!

2
我使用vim从来没有遇到问题,只要使用包含所需字符的字体即可。它需要是等宽字体。 :set enc=utf8 进入utf8模式。然后您可以使用 :digraph 命令获取可用字符的显示,并查看每个字符的显示方式。
要添加字体,请在Windows中添加(控制面板/字体/添加字体)。如果这是一个等宽字体,则会在vim中的 /Edit/Font 中显示出来。

2
似乎 Jedit 的问题可能是字体 - 你是否使用可以正确显示所有字符的字体?
更准确地说,Arial Unicode MS 是一个合理的选择,它是一种 Unicode 字体,可以在各种语言的范围内显示广泛的字符。对于某些孤立使用的语言,它存在一些问题,这就是为什么 Windows 中还包括特定语言的 Unicode 字体的原因。

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