65.9K
CodeProject 正在变化。 阅读更多。
Home

将日文转换为罗马字

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (5投票s)

2010年6月13日

CPOL

1分钟阅读

viewsIcon

46329

downloadIcon

2257

将平假名和片假名字符串转换为罗马字

引言

这个简单的工具可以将日语字符串转换为等效的罗马字字符串。

日语到罗马字转换器的截图。

背景

日语的罗马化是将拉丁字母应用于书写日语的过程。这种书写方法被称为罗马字。日语是用三种书写系统的组合书写的:称为汉字的中文汉字,以及由修改后的中文汉字构成的两种音节书写系统,平假名和片假名。在这里,我将平假名和片假名字母转换为罗马字。

Using the Code

Unicode图表指导我构建这些工具

当我开始学习日语时,很难识别日语文本。我想,如果有一个工具可以将日语转换为罗马字,那将会很好。在阅读了日语字符的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.txtKatakana.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日:初始发布
© . All rights reserved.