我有一个想法,写一些网络应用程序来帮助我,也许其他人,更好地学习日语,因为我正在学习日语。
我的问题是,该网站将主要是英文,所以它需要流利地混合日语字符,通常是平假名和片假名,但后来汉字。我越来越接近于实现这一点;我已经知道页面和源文件需要是unicode和utf-8内容类型。
然而,我的问题来自于实际的编码。我需要的是操作假名形式的文本字符串。一个例子是:
我需要把这个动词转换成te形式的けして。我更喜欢用javascript来做这件事,因为这将有助于以后做更多的操作,但如果必须这样做,我将只做DB调用,并将所有内容都保存在DB中。
我的问题不仅是如何在javascript中做到这一点,而且在其他语言中也有什么技巧和策略来做这类事情。我希望能在语言学习应用中获得更多,但当涉及到这一点时,我就迷失了方向。
发布于 2009-05-03 17:58:46
我的问题不仅是如何在javascript中做到这一点,而且在其他语言中也有什么技巧和策略来做这类事情。
你想要做的是非常基本的字符串操作-除了缺少的单词分隔符,正如Barry所说,尽管这不是一个技术问题。
基本上,对于支持Unicode的现代编程语言(我认为JavaScript从1.3版开始就是这样)来说,日语假名或汉字和拉丁字母之间没有什么真正的区别--它们都只是字符。一个字符串就是一个字符串。
当你必须在字符串和字节之间进行转换时,它变得困难了,因为你需要注意你使用的是什么编码。不幸的是,许多程序员,尤其是以英语为母语的人倾向于掩盖这个问题,因为ASCII是拉丁字母的事实上的标准编码,而其他编码通常试图兼容。如果拉丁字母是你需要的全部,那么你可以幸灾乐祸地对字符编码一无所知,相信字节和字符基本上是一回事--并编写程序,破坏任何非ASCII的东西。
因此,支持Unicode的编程的“秘密”是这样的:学会识别字符串/字符何时何地转换为字节,并确保在所有这些地方使用了正确的编码,即用于反向转换的编码相同,并且可以对您正在使用的所有字符进行编码。UTF-8正在慢慢成为事实上的标准,通常应该在您可以选择的任何地方使用。
典型示例(非详尽):
使用非ASCII字符串文字编写源代码时的编码(在editor/IDE)
发布于 2009-05-04 04:55:00
你需要做的就是看看语法规则。对每个共轭都有一组规则。让我们以~て形式为例。Psudocode:
def te_form(verb)
switch verb.substr(-1, 1) == "る" then return # verb minus ru plus te
case "る" #return (verb - る) + て
case "す" #return (verb - す)+して等等。基本上,把它分成I,II和III类动词。
发布于 2009-05-02 20:00:30
你的问题对我来说完全不清楚。
然而,我有一些使用日语的经验,所以我会给出我的2点意见。
由于日语文本不具有分词功能(例如空格字符),因此我们必须获得的最重要的工具是基于字典的单词识别器。
一旦你拆分了文本,使用“普通”工具操作它就更容易了。
只有两个工具可以完成上述工作,而且作为副产品,它们还可以用作标记器(即名词、动词等)。
编辑:在使用语言时始终使用unicode。
https://stackoverflow.com/questions/815292
复制相似问题