将日文转换为罗马字






4.50/5 (5投票s)
将平假名和片假名字符串转换为罗马字
引言
这个简单的工具可以将日语字符串转换为等效的罗马字字符串。

日语到罗马字转换器的截图。
背景
日语的罗马化是将拉丁字母应用于书写日语的过程。这种书写方法被称为罗马字。日语是用三种书写系统的组合书写的:称为汉字的中文汉字,以及由修改后的中文汉字构成的两种音节书写系统,平假名和片假名。在这里,我将平假名和片假名字母转换为罗马字。
Using the Code
Unicode图表指导我构建这些工具
- http://www.unicode.org/charts/PDF/U30A0.pdf 用于片假名,以及
- http://www.unicode.org/charts/PDF/U30A0.pdf 用于平假名
当我开始学习日语时,很难识别日语文本。我想,如果有一个工具可以将日语转换为罗马字,那将会很好。在阅读了日语字符的Unicode范围后,我有了自己创建这个工具的想法。互联网上有很多可用于将日语转换为罗马字的工具。这里提供了一种将日语转换为罗马字的简单技术。
// This function parse the given file and output pUnicodeMap.
// Returns the count of parsed elements.
int Parser::ParaseDB( TCHAR* pDBFileData_i, std::map<int,std::wstring>& pUnicodeMap );
语言信息被添加为两个资源文件,Hiragana.txt 和 Katakana.txt。这些文件使用以下代码从资源中读取
HRSRC hrInfo = FindResource( 0, MAKEINTRESOURCE
( IDR_IDR_HIRAGANA ),TEXT("IDR_DATA"));
HGLOBAL hRc = LoadResource(0, hrInfo );
TCHAR* pBuffer = (TCHAR* )LockResource( hRc );
Parser p;
// Parse the database of Hiragana.txt and update unicode map.
p.ParaseDB(pBuffer, m_UnicodeMap);
HRSRC hrInfoKatakana = FindResource
( 0, MAKEINTRESOURCE( IDR_IDR_KATAKANA ),TEXT("IDR_DATA"));
HGLOBAL hRcKatakana = LoadResource(0, hrInfoKatakana );
TCHAR* pBufferKatakana = (TCHAR* )LockResource( hRcKatakana );
// Parse the database of Katakana.txt and update unicode map.
p.ParaseDB(pBufferKatakana, m_UnicodeMap);
关注点
Parser
类可以解析包含Unicode值和相应英文字符串的文本文件。ParseDB()
函数解析以下格式的数据,并输出一个包含输入文件中所有元素的映射。
BEGIN_MAP:
//?
3093,12435,N.
..
..
END_MAP:
历史
- 2010年6月13日:初始发布