お世話になります。

文字変換についてご質問させていただきます。

カナ文字氏名からローマ字氏名については出来ることは確認しておりますが、
ローマ字氏名からカナ文字氏名に変換することは可能でしょうか。
不躾な質問なのですが、何かクラスサンプル等、ヒントがございましたら、ご教示いただければ幸いに存じます。

一応使用言語ついては、C#2005で開発しております。

ご回答いただければ助かります。
宜しくお願い申し上げます。

以上です。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

調べりゃあったりする。


Microsoft Visual Studio International
http://www.microsoft.com/downloads/details.aspx? …

サンプル云々
http://wiki.dobon.net/index.php?.NET%A5%D7%A5%ED …

ローマ字から直でカタカナへのメソッドが無さそうなので
KanaConverteクラスのRomajiToHiragana後、HiraganaToKatakanaにて
    • good
    • 0
この回答へのお礼

ご教示ありがとうございます。
使用できるか試してみたいと思います。

お礼日時:2011/04/26 17:21

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qヘボン式ローマ字で、かとうを、KATOで、よめるか?旅券の話です。

ヘボン式ローマ字で、かとうを、KATOで、よめるか?旅券の話です。

Aベストアンサー

読めません。ローマ字は外国人向けに発音を示すための書き方ではありませんから、外国人が正しい発音で読めないのは当然だし、それで全く問題ありません。けれども日本人が見ても読めないのは大問題です。

ローマ字は日本語なので正しいローマ字なら日本人が見れば正しい発音で読めます。ところが旅券で使われる「外務省ヘボン式」は読めません。これは英語の書き方であって、正しいローマ字ではないからです。自分の名前を(場合によっては自分でさえ正しく読めない)外国語の書き方にしているわけで、国際的にも恥ずかしい状況だと言えます。

Q半角カナ文字と特殊文字の変換

半角カナ文字と「丸で囲まれた1」や「はしご高」等の特殊文字を
SJISからJISへ、JISからSJISへ変換する方法を調べています。
半角カナはJISにないという記述も見たのですが、
サクラエディタで双方へ変換できるのと、
Outlookへ半角カナで送信したところ文字化けせず(全角になっていましたが)
受信できたこと、「はしご高」は受送信で文字変換されているようなので、
何か方法があるのではないかと調べています。

方法や参考資料を教えていただければと思います。
よろしくお願いいたします。

Aベストアンサー

昼休みにsakuraエディタのソース見てみました♪

JISで検索すると
CEditView.h:757:void Command_CODECNV_SJIS2JIS( void );/* SJIS→JISコード変換 */
とか
CEditView.cpp:5619:case F_CODECNV_SJIS2JIS:pCMemory->SJIStoJIS();break;/* SJIS→JISコード変換 */
いうのがすぐ見つかるじゃないですか。

> 思うソースがみつかりませんでした^^;
> ヘルプファイルのようなものはみつかったのですが・・・

もうちょっとソースの読み方を身に付けたほうが良いかも。

んで、
void CMemory::SJIStoJIS( void )
{
/* SJIS→JIS */
StrSJIStoJIS( &cMem, (unsigned char *)m_pData, m_nDataLen );



int CMemory::StrSJIStoJIS( CMemory* pcmemDes, unsigned char* pszSrc, int nSrcLen )
{
// SJIS→JIS変換
nWorkLen = MemSJIStoJIS( pszWork, nWorkLen );



/* SJIS→JIS変換 */
long CMemory::MemSJIStoJIS( unsigned char* pszSrc, long nSrcLen )
{

//Oct. 3, 2002 genta IBM拡張文字対応
sCode = _mbcjmstojis_ex( pszSrc + i );


で、

/*!
@brief 拡張版 SJIS→JIS変換

SJISコードをJISに変換する.その際,JISに対応領域のないIBM拡張文字を
NEC選定IBM拡張文字に変換する.

Shift_JIS fa40~fc4b の範囲の文字は 8754~879a または ed40~eefc に
散在する文字に変換された後に,JISに変換されます.

@param pszSrc [in] 変換する文字列へのポインタ (Shift JIS)

@author すい
@date 2002.10.03 1文字のみ扱い,変換まで行うように変更 genta
*/
unsigned short CMemory::_mbcjmstojis_ex( unsigned char* pszSrc )
{

が実体ですね。

if(
( *pszSrc == 0x0fa ) ||
( *pszSrc == 0x0fb ) ||
( ( *pszSrc == 0x0fc ) && ( *(pszSrc+1) <= 0x04b ) )
) {/* fa40~fc4b の文字である。 */
/* 文字コード変換処理 */

これで切り分けて、ライブラリ関数の_mbcjmstojis で
変換できる部分はそれに任せて
そうでない文字は細かくチェックして
変換しているみたいですね。

んじゃあ頑張って読み取ってください♪

昼休みにsakuraエディタのソース見てみました♪

JISで検索すると
CEditView.h:757:void Command_CODECNV_SJIS2JIS( void );/* SJIS→JISコード変換 */
とか
CEditView.cpp:5619:case F_CODECNV_SJIS2JIS:pCMemory->SJIStoJIS();break;/* SJIS→JISコード変換 */
いうのがすぐ見つかるじゃないですか。

> 思うソースがみつかりませんでした^^;
> ヘルプファイルのようなものはみつかったのですが・・・

もうちょっとソースの読み方を身に付けたほうが良いかも。

んで、
void CMemory::SJIStoJIS(...続きを読む

Qヘボン式ローマ字 氏名表記

こんにちは

表彰状にヘボン式ローマ字で名前を入れるのですが
判断に迷っているものがあります
(1)ショウコ→shoko? shouko?
(2)ミユウ→miyuu? miyu?
どちらが正しいでしょうか?

初歩的な質問で申しわけございませんが
ご指導よろしくお願いいたします

Aベストアンサー

「ヘボン式ローマ字」という事なら・・・・

  (1) ショウコ → shoko
  (2) ミユウ → miyu

 下記サイトに『姓または名の末尾であるか否かに関わらず、ふりがなを「う」としたものは「U」を入れない』で『ショウタ → SHOTA』『中條(ちゅうじょう)→ CHUJO』って例がありますから。

 http://www.seikatubunka.metro.tokyo.jp/hebon/
 http://www.pref.kanagawa.jp/osirase/02/2315/hebon.html

 ただし,「ヘボン式」でなければ,「shouko」や「miyuu」も正しいでしょう。表彰状なら,「ヘボン式」に拘らず,本人の希望する方で良いのではないでしょうか?

参考URL:http://www.seikatubunka.metro.tokyo.jp/hebon/, http://www.pref.kanagawa.jp/osirase/02/2315/hebon.html

Qローマ字を日本語に変換するライブラリー

ローマ字を日本語に変換するライブラリーって
ないでしょうか?タイピングすると日本語に変換される
ようなものを想定しています。

Aベストアンサー

それって、IME。

とはいえ、ライブラリとして利用できそうもないので、

Anthのソースとか参考にすればいいのでは
http://anthy.sourceforge.jp/
http://sourceforge.jp/projects/anthy/

参考URL:http://anthy.sourceforge.jp/

Qヘボン式ローマ字

こんにちは

ヘボン式ローマ字表記について質問させていただきます。
加藤はKatoと表記しますが。
新津(にいつ)はNiitsu or Nitsuどちらの表記が正しいでしょうか?

よろしくお願い致します。

Aベストアンサー

こんにちは

パスポートの申請をするときなど、例外もありますがヘボン式を使いますよね?

長音で省略できるのは、原則的に「オオ」か「オウ」のときの「o」「u」だけです。
よく、表記例で見かけるのが、「東宮御所」の「東宮(トウグウ)」を「Togu」と表記するというのを見かけます。

ニイツ(ニーツ)は、原則的に省略できませんので、「Niitsu」と、「i」を2つ使うのが正しい表記、といえると思います。

ただ、パスポート申請の場合は、特別に「非ヘボン式」使用の申請書を出せば、使えるかもしれませんが、そんなことをしたことないので・・・

QC#で漢字→ローマ字を変換

C#で漢字→かなはImmGetConversionListで変換できるのですが、
漢字→ローマ字を変換することは可能でょうか?
(およそで変換できればOKです)

Aベストアンサー

「漢字→かな」が変換できるのであれば、
それに「かな→ローマ字」を自分で作れば
「漢字→ローマ字」になるのでは?

Qヘボン式ローマ字の「ふ」の表記について教えてください。

ヘボン式ローマ字の「ふ」の表記について教えてください。

ヘボン式では「ふ」は "fu" ですが、なぜ "f" を使うことになったのでしょうか?
ヘップバーンは "hu" だと human や humid のように「ヒュー」と発音するから短母音の「ウ」を出すためには "f" の方が良いと判断したのでしょうか?

つまり、Huji、 Hukui、 Hirohumi などの表記を見せると「ヒュージ、ヒュークイ、ヒロヒューミ」のように発音すると思ったのでしょうか?

Aベストアンサー

yoko_igaさん、こんにちは。

>>>ヘップバーンは "hu" だと human や humid のように「ヒュー」と発音するから短母音の「ウ」を出すためには "f" の方が良いと判断したのでしょうか?

それはありえないと思いますよ。
fuel, fuse, confuse, fusion ・・・
のように、フーではなくフューという発音を含む英単語はたくさんあります。

food の foo は、日本語的な発音の「ふう」と似てはいますが、違います。
(fの発音は、下唇を上の前歯に触れさせて発音します。日本語のフはそうではありません。)
これは、「し」を si ではなく shi としても、依然として発音が違うことと同様です。
「違う発音だけれども、聞いたときに(印象が)なるべく近い音を選んだ」ということにすぎないのです。

Qローマ字変換アルゴリズムを教えてください。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

wchar_t t[50][5]={
L"あ",L"い",L"う",L"え",L"お",
L"か",L"き",L"く",L"け",L"こ",
L"さ",L"し",L"す",L"せ",L"そ",
L"た",L"ち",L"つ",L"て",L"と",
L"な",L"に",L"ぬ",L"ね",L"の",
L"は",L"ひ",L"ふ",L"へ",L"ほ",
L"ま",L"み",L"む",L"め",L"も",
L"や",L" ",L"ゆ",L" ",L"よ",
L"わ",L" ",L"を",L" ",L"ん"
};

char t2[50][3]={
"a ","i ","u ","e ","o ",
"ka","ki","ku","ke","ko",
"sa","si","su","se","so",
"ta","ti","tu","te","to",
"na","ni","nu","ne","no",
"ha","hi","hu","he","ho",
"ma","mi","mu","me","mo",
"ya"," ","yu"," ","yo",
"wa"," ","wo"," ","nn"
};

wchar_t *henkan()
{
wchar_t str[150];
char str2[300];
int i=0;
int j;
scanf("%s",&str2);

while(str2[i])
{
for(j=0;j<50;j++)
{
if(strcmp(str2,t2[j])==0)
{
str[i]=t[j];
str[i+1]='\0';
}
}
i+=2;
}

printf("入力された文字は%sです。\n",str);

return str;
}


int main(void)
{
wchar_t str[1000];
while(1)
{
str=henkan();
}
return 0;

}
ローマ字から、ひらがなに変換するアルゴリズムを考えているのですが、
なかなかうまくいきません。このソースコードはコンパイルもできませんでした。
どうすれば、うまくいきますでしょうか?

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

wchar_t t[50][5]={
L"あ",L"い",L"う",L"え",L"お",
L"か",L"き",L"く",L"け",L"こ",
L"さ",L"し",L"す",L"せ",L"そ",
L"た",L"ち",L"つ",L"て",L"と",
L"な",L"に",L"ぬ",L"ね",L"の",
L"は",L"ひ",L"ふ",L"へ",L"ほ",
L"ま",L"み",L"む",L"め",L"も",
L"や",L" ",L"ゆ",L" ",L"よ",
L"わ",L" ",L"を",L" ",L"ん"
};

char t2[50][3]={
"a ","i ","u ","e ","o ",
"ka","ki","ku"...続きを読む

Aベストアンサー

自分の環境で scanf("%s",&str2); では
"a i u e o " と入力してもstrには"a"しか入らない。
strcmpの使い方、意図するものと違ってるはずだし

とりあえず
while(str2[i])
{
 for(j=0;j<50;j++)
 {
  if(str2[i]==t2[j][0]){
   if(j<5){
    //(後で)
    i++;
    break;
   }
   else{
    if(str2[i+1]==t2[j][1]){
     //(後で)
     i+=2;
     break;
    }
   }
  }
 }
 //if(j==50)
  //(後で)
}

str[i]=t[j]; の部分は、エラーだし
i は使えなくなるから別の処理にする。
wchar_tも使えないのでcharにしてstrcatか?というとこです。
void henkan()にして少しずつテストしながら考えてみては?

Qパスポートのヘボン式ローマ字は強制ですか?

パスポートの氏名表記について、ローマ字はヘボン式に統一
されており、外務省ホームページなどでも、
「”ゆうこ”はYUUKOではなくYUKOと表記する」など、
具体的に書かれています。
これは強制力を持つものなのでしょうか?

子供の名前が上記例の”ゆうこ”に似た名前で、親としては
音を忠実に表記したいので、YUKOではなくYUUKOと書きたい
のです。
「ウチの子は”ゆこ”じゃないっっ」っていう思いです。

ヘボン式でない表記について云々、という説明もありますが、
基本的に外国名(姓含む)の場合を想定しているように読め
ますので、生粋の日本人である我が家の場合は当てはまらな
いのかな、と思っています。
この辺についても解説頂けると助かります。

できればパスポート行政に従事されているような方からコメ
ントを頂けるとうれしいです。
宜しくお願いします。

Aベストアンサー

ゆうこをYUKOと書こうがYUUKOと書こうが、それって既に日本語ではありませんね(戸籍ではそうなっていないという意味です)。つまりYUKOあるいはYUUKOは「ゆうこ」をアルファベットで記す便法に過ぎない、つまり一種の記号であると私は思っています。そうだとすると一定した表記法が決められていないと、日本人も外国人も混乱するでしょう。海外で聞かれたら、YUKOはユーコと発音するのだと説明すればいいのではありませんか。ヘボン式にしろ訓令式にせよ、ローマ字は日本語の発音を近似的に表現しているに過ぎません(たとえばローマ字では鼻濁音は無視されているし、あるいは役者を日本語で発音すればYakshaに近いがローマ字ではYakushaと書く約束になっているし、備中という地名をローマ字でどう書きますか)ローマ字で「正しく」書いた自分の名前を外人がアクセントを含めて正しく発音してくれることなどまずないといってよいでしょう。逆に外人の名前や地名も日本人が正しく発音できるなどということもまずないと思います。要するにその人や場所を特定するための記号だと思えばいいのだと思っています(それ以外に方法はないのですから)。

ゆうこをYUKOと書こうがYUUKOと書こうが、それって既に日本語ではありませんね(戸籍ではそうなっていないという意味です)。つまりYUKOあるいはYUUKOは「ゆうこ」をアルファベットで記す便法に過ぎない、つまり一種の記号であると私は思っています。そうだとすると一定した表記法が決められていないと、日本人も外国人も混乱するでしょう。海外で聞かれたら、YUKOはユーコと発音するのだと説明すればいいのではありませんか。ヘボン式にしろ訓令式にせよ、ローマ字は日本語の発音を近似的に表現しているに過ぎま...続きを読む

Q半角カナ文字の検査

お世話になっております。
現在C#で開発を行っています。文字列の検索で困っているのですが、
文字列が半角かなで構成されているか、もしくは半角かな以外の文字が含まれるか?
を判断したいのですがどのように行えばよいのでしょうか。
よろしくお願い致します。m(_ _)m

Aベストアンサー

正規表現を使ってチェックしたら良いと思います。
http://codezine.jp/a/article/aid/1083.aspx?p=2


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング