Index 扉へ 首頁
人類の品種・宇宙人・系外銀河など
関東のアルファベットを「転写」してくれるライブラリです (C#)
0   商湯      2026年2月5日 木 9:54
Download source files:
http://www.jkofsp.net/files/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Takaku.ShangAlphabet
{
   public class Transcription
   {
       public static readonly Transcription TheTranscription = new Transcription();

       List<string> Map = new List<string>(677);

       private Transcription()
       {
           for (int i = 0; i <= 676; i++)
               Map.Add(null);

           Map[0] = "0";
           Map[1] = "1";
           Map[2] = "2";
           Map[3] = "3";
           Map[4] = "4";
           Map[5] = "5";
           Map[6] = "6";
           Map[7] = "7";
           Map[8] = "8";
           Map[9] = "9";
           Map[10] = "a";
           Map[11] = "i";
           Map[12] = "eu";
           Map[13] = "u";
           Map[14] = "e";
           Map[15] = "o";
           Map[16] = "ya";
           Map[17] = "yu";
           Map[18] = "ye";
           Map[19] = "yo";
           Map[20] = "wa";
           Map[21] = "wi";
           Map[22] = "we";
           Map[23] = "wo";

           Map[24] = "ha";
           Map[25] = "hi";
           Map[26] = "heu";
           Map[27] = "hu";
           Map[28] = "he";
           Map[29] = "ho";
           Map[30] = "hya";
           Map[31] = "hyu";
           Map[32] = "hye";
           Map[33] = "hyo";
           Map[34] = "hwa";
           Map[35] = "hwi";
           Map[36] = "hwe";
           Map[37] = "hwo";

           Map[38] = "hha";
           Map[39] = "hhi";
           Map[40] = "hheu";
           Map[41] = "hhu";
           Map[42] = "hhe";
           Map[43] = "hho";
           Map[44] = "hhya";
           Map[45] = "hhyu";
           Map[46] = "hhye";
           Map[47] = "hhyo";
           Map[48] = "hhwa";
           Map[49] = "hhwi";
           Map[50] = "hhwe";
           Map[51] = "hhwo";

           Map[52] = "H";

           Map[53] = "qa";
           Map[54] = "qi";
           Map[55] = "qeu";
           Map[56] = "qu";
           Map[57] = "qe";
           Map[58] = "qo";
           Map[59] = "qya";
           Map[60] = "qyu";
           Map[61] = "qye";
           Map[62] = "qyo";
           Map[63] = "qwa";
           Map[64] = "qwi";
           Map[65] = "qwe";
           Map[66] = "qwo";

           Map[67] = "qha";
           Map[68] = "qhi";
           Map[69] = "qheu";
           Map[70] = "qhu";
           Map[71] = "qhe";
           Map[72] = "qho";
           Map[73] = "qhya";
           Map[74] = "qhyu";
           Map[75] = "qhye";
           Map[76] = "qhyo";
           Map[77] = "qhwa";
           Map[78] = "qhwi";
           Map[79] = "qhwe";
           Map[80] = "qhwo";

           Map[81] = "Ga";
           Map[82] = "Gi";
           Map[83] = "Geu";
           Map[84] = "Gu";
           Map[85] = "Ge";
           Map[86] = "Go";
           Map[87] = "Gya";
           Map[88] = "Gyu";
           Map[89] = "Gye";
           Map[90] = "Gyo";
           Map[91] = "Gwa";
           Map[92] = "Gwi";
           Map[93] = "Gwe";
           Map[94] = "Gwo";

           Map[95] = "Gha";
           Map[96] = "Ghi";
           Map[97] = "Gheu";
           Map[98] = "Ghu";
           Map[99] = "Ghe";
           Map[100] = "Gho";
           Map[101] = "Ghya";
           Map[102] = "Ghyu";
           Map[103] = "Ghye";
           Map[104] = "Ghyo";
           Map[105] = "Ghwa";
           Map[106] = "Ghwi";
           Map[107] = "Ghwe";
           Map[108] = "Ghwo";

           Map[109] = "Xa";
           Map[110] = "Xi";
           Map[111] = "Xeu";
           Map[112] = "Xu";
           Map[113] = "Xe";
           Map[114] = "Xo";
           Map[115] = "Xya";
           Map[116] = "Xyu";
           Map[117] = "Xye";
           Map[118] = "Xyo";
           Map[119] = "Xwa";
           Map[120] = "Xwi";
           Map[121] = "Xwe";
           Map[122] = "Xwo";

           Map[123] = "XXa";
           Map[124] = "XXi";
           Map[125] = "XXeu";
           Map[126] = "XXu";
           Map[127] = "XXe";
           Map[128] = "XXo";
           Map[129] = "XXya";
           Map[130] = "XXyu";
           Map[131] = "XXye";
           Map[132] = "XXyo";
           Map[133] = "XXwa";
           Map[134] = "XXwi";
           Map[135] = "XXwe";
           Map[136] = "XXwo";

           Map[137] = "N";

           Map[138] = "ka";
           Map[139] = "ki";
           Map[140] = "keu";
           Map[141] = "ku";
           Map[142] = "ke";
           Map[143] = "ko";
           Map[144] = "kya";
           Map[145] = "kyu";
           Map[146] = "kye";
           Map[147] = "kyo";
           Map[148] = "kwa";
           Map[149] = "kwi";
           Map[150] = "kwe";
           Map[151] = "kwo";

           Map[152] = "kha";
           Map[153] = "khi";
           Map[154] = "kheu";
           Map[155] = "khu";
           Map[156] = "khe";
           Map[157] = "kho";
           Map[158] = "khya";
           Map[159] = "khyu";
           Map[160] = "khye";
           Map[161] = "khyo";
           Map[162] = "khwa";
           Map[163] = "khwi";
           Map[164] = "khwe";
           Map[165] = "khwo";

           Map[166] = "ga";
           Map[167] = "gi";
           Map[168] = "geu";
           Map[169] = "gu";
           Map[170] = "ge";
           Map[171] = "go";
           Map[172] = "gya";
           Map[173] = "gyu";
           Map[174] = "gye";
           Map[175] = "gyo";
           Map[176] = "gwa";
           Map[177] = "gwi";
           Map[178] = "gwe";
           Map[179] = "gwo";

           Map[180] = "gha";
           Map[181] = "ghi";
           Map[182] = "gheu";
           Map[183] = "ghu";
           Map[184] = "ghe";
           Map[185] = "gho";
           Map[186] = "ghya";
           Map[187] = "ghyu";
           Map[188] = "ghye";
           Map[189] = "ghyo";
           Map[190] = "ghwa";
           Map[191] = "ghwi";
           Map[192] = "ghwe";
           Map[193] = "ghwo";

           Map[194] = "xa";
           Map[195] = "xi";
           Map[196] = "xeu";
           Map[197] = "xu";
           Map[198] = "xe";
           Map[199] = "xo";
           Map[200] = "xya";
           Map[201] = "xyu";
           Map[202] = "xye";
           Map[203] = "xyo";
           Map[204] = "xwa";
           Map[205] = "xwi";
           Map[206] = "xwe";
           Map[207] = "xwo";

           Map[208] = "xxa";
           Map[209] = "xxi";
           Map[210] = "xxeu";
           Map[211] = "xxu";
           Map[212] = "xxe";
           Map[213] = "xxo";
           Map[214] = "xxya";
           Map[215] = "xxyu";
           Map[216] = "xxye";
           Map[217] = "xxyo";
           Map[218] = "xxwa";
           Map[219] = "xxwi";
           Map[220] = "xxwe";
           Map[221] = "xxwo";

           Map[222] = "nga";
           Map[223] = "ngi";
           Map[224] = "ngeu";
           Map[225] = "ngu";
           Map[226] = "nge";
           Map[227] = "ngo";
           Map[228] = "ngya";
           Map[229] = "ngyu";
           Map[230] = "ngye";
           Map[231] = "ngyo";
           Map[232] = "ngwa";
           Map[233] = "ngwi";
           Map[234] = "ngwe";
           Map[235] = "ngwo";

           Map[236] = "ca";
           Map[237] = "ci";
           Map[238] = "cu";
           Map[239] = "ce";
           Map[240] = "co";

           Map[241] = "cha";
           Map[242] = "chi";
           Map[243] = "chu";
           Map[244] = "che";
           Map[245] = "cho";

           Map[246] = "ja";
           Map[247] = "ji";
           Map[248] = "ju";
           Map[249] = "je";
           Map[250] = "jo";

           Map[251] = "jha";
           Map[252] = "jhi";
           Map[253] = "jhu";
           Map[254] = "jhe";
           Map[255] = "jho";

           Map[256] = "Ca";
           Map[257] = "Ci";
           Map[258] = "Cu";
           Map[259] = "Ce";
           Map[260] = "Co";

           Map[261] = "Ja";
           Map[262] = "Ji";
           Map[263] = "Ju";
           Map[264] = "Je";
           Map[265] = "Jo";

           Map[266] = "nja";
           Map[267] = "nji";
           Map[268] = "nju";
           Map[269] = "nje";
           Map[270] = "njo";

           Map[271] = "sa";
           Map[272] = "si";
           Map[273] = "seu";
           Map[274] = "su";
           Map[275] = "se";
           Map[276] = "so";
           Map[277] = "sya";
           Map[278] = "syu";
           Map[279] = "sye";
           Map[280] = "syo";
           Map[281] = "swa";
           Map[282] = "swi";
           Map[283] = "swe";
           Map[284] = "swo";

           Map[285] = "za";
           Map[286] = "zi";
           Map[287] = "zeu";
           Map[288] = "zu";
           Map[289] = "ze";
           Map[290] = "zo";
           Map[291] = "zya";
           Map[292] = "zyu";
           Map[293] = "zye";
           Map[294] = "zyo";
           Map[295] = "zwa";
           Map[296] = "zwi";
           Map[297] = "zwe";
           Map[298] = "zwo";

           Map[299] = "Sa";
           Map[300] = "Si";
           Map[301] = "Su";
           Map[302] = "Se";
           Map[303] = "So";

           Map[304] = "Za";
           Map[305] = "Zi";
           Map[306] = "Zu";
           Map[307] = "Ze";
           Map[308] = "Zo";

           Map[309] = "ta";
           Map[310] = "ti";
           Map[311] = "teu";
           Map[312] = "tu";
           Map[313] = "te";
           Map[314] = "to";
           Map[315] = "tya";
           Map[316] = "tyu";
           Map[317] = "tye";
           Map[318] = "tyo";
           Map[319] = "twa";
           Map[320] = "twi";
           Map[321] = "twe";
           Map[322] = "two";

           Map[323] = "tha";
           Map[324] = "thi";
           Map[325] = "theu";
           Map[326] = "thu";
           Map[327] = "the";
           Map[328] = "tho";
           Map[329] = "thya";
           Map[330] = "thyu";
           Map[331] = "thye";
           Map[332] = "thyo";
           Map[333] = "thwa";
           Map[334] = "thwi";
           Map[335] = "thwe";
           Map[336] = "thwo";

           Map[337] = "da";
           Map[338] = "di";
           Map[339] = "deu";
           Map[340] = "du";
           Map[341] = "de";
           Map[342] = "do";
           Map[343] = "dya";
           Map[344] = "dyu";
           Map[345] = "dye";
           Map[346] = "dyo";
           Map[347] = "dwa";
           Map[348] = "dwi";
           Map[349] = "dwe";
           Map[350] = "dwo";

           Map[351] = "dha";
           Map[352] = "dhi";
           Map[353] = "dheu";
           Map[354] = "dhu";
           Map[355] = "dhe";
           Map[356] = "dho";
           Map[357] = "dhya";
           Map[358] = "dhyu";
           Map[359] = "dhye";
           Map[360] = "dhyo";
           Map[361] = "dhwa";
           Map[362] = "dhwi";
           Map[363] = "dhwe";
           Map[364] = "dhwo";

           Map[365] = "Ta";
           Map[366] = "Ti";
           Map[367] = "Teu";
           Map[368] = "Tu";
           Map[369] = "Te";
           Map[370] = "To";
           Map[371] = "Tya";
           Map[372] = "Tyu";
           Map[373] = "Tye";
           Map[374] = "Tyo";
           Map[375] = "Twa";
           Map[376] = "Twi";
           Map[377] = "Twe";
           Map[378] = "Two";

           Map[379] = "Da";
           Map[380] = "Di";
           Map[381] = "Deu";
           Map[382] = "Du";
           Map[383] = "De";
           Map[384] = "Do";
           Map[385] = "Dya";
           Map[386] = "Dyu";
           Map[387] = "Dye";
           Map[388] = "Dyo";
           Map[389] = "Dwa";
           Map[390] = "Dwi";
           Map[391] = "Dwe";
           Map[392] = "Dwo";

           Map[393] = "na";
           Map[394] = "ni";
           Map[395] = "neu";
           Map[396] = "nu";
           Map[397] = "ne";
           Map[398] = "no";
           Map[399] = "nya";
           Map[400] = "nyu";
           Map[401] = "nye";
           Map[402] = "nyo";
           Map[403] = "nwa";
           Map[404] = "nwi";
           Map[405] = "nwe";
           Map[406] = "nwo";

           Map[407] = "jna";
           Map[408] = "jni";
           Map[409] = "jnu";
           Map[410] = "jne";
           Map[411] = "jno";

           Map[412] = "tsa";
           Map[413] = "tsi";
           Map[414] = "tseu";
           Map[415] = "tsu";
           Map[416] = "tse";
           Map[417] = "tso";
           Map[418] = "tsya";
           Map[419] = "tsyu";
           Map[420] = "tsye";
           Map[421] = "tsyo";
           Map[422] = "tswa";
           Map[423] = "tswi";
           Map[424] = "tswe";
           Map[425] = "tswo";

           Map[426] = "tsha";
           Map[427] = "tshi";
           Map[428] = "tsheu";
           Map[429] = "tshu";
           Map[430] = "tshe";
           Map[431] = "tsho";
           Map[432] = "tshya";
           Map[433] = "tshyu";
           Map[434] = "tshye";
           Map[435] = "tshyo";
           Map[436] = "tshwa";
           Map[437] = "tshwi";
           Map[438] = "tshwe";
           Map[439] = "tshwo";

           Map[440] = "dza";
           Map[441] = "dzi";
           Map[442] = "dzeu";
           Map[443] = "dzu";
           Map[444] = "dze";
           Map[445] = "dzo";
           Map[446] = "dzya";
           Map[447] = "dzyu";
           Map[448] = "dzye";
           Map[449] = "dzyo";
           Map[450] = "dzwa";
           Map[451] = "dzwi";
           Map[452] = "dzwe";
           Map[453] = "dzwo";

           Map[454] = "dzha";
           Map[455] = "dzhi";
           Map[456] = "dzheu";
           Map[457] = "dzhu";
           Map[458] = "dzhe";
           Map[459] = "dzho";
           Map[460] = "dzhya";
           Map[461] = "dzhyu";
           Map[462] = "dzhye";
           Map[463] = "dzhyo";
           Map[464] = "dzhwa";
           Map[465] = "dzhwi";
           Map[466] = "dzhwe";
           Map[467] = "dzhwo";

           Map[468] = "tSa";
           Map[469] = "tSi";
           Map[470] = "tSu";
           Map[471] = "tSe";
           Map[472] = "tSo";

           Map[473] = "tSha";
           Map[474] = "tShi";
           Map[475] = "tShu";
           Map[476] = "tShe";
           Map[477] = "tSho";

           Map[478] = "dZa";
           Map[479] = "dZi";
           Map[480] = "dZu";
           Map[481] = "dZe";
           Map[482] = "dZo";

           Map[483] = "dZha";
           Map[484] = "dZhi";
           Map[485] = "dZhu";
           Map[486] = "dZhe";
           Map[487] = "dZho";

           Map[488] = "pa";
           Map[489] = "pi";
           Map[490] = "peu";
           Map[491] = "pu";
           Map[492] = "pe";
           Map[493] = "po";
           Map[494] = "pya";
           Map[495] = "pyu";
           Map[496] = "pye";
           Map[497] = "pyo";

           Map[498] = "pha";
           Map[499] = "phi";
           Map[500] = "pheu";
           Map[501] = "phu";
           Map[502] = "phe";
           Map[503] = "pho";
           Map[504] = "phya";
           Map[505] = "phyu";
           Map[506] = "phye";
           Map[507] = "phyo";

           Map[508] = "ba";
           Map[509] = "bi";
           Map[510] = "beu";
           Map[511] = "bu";
           Map[512] = "be";
           Map[513] = "bo";
           Map[514] = "bya";
           Map[515] = "byu";
           Map[516] = "bye";
           Map[517] = "byo";

           Map[518] = "bha";
           Map[519] = "bhi";
           Map[520] = "bheu";
           Map[521] = "bhu";
           Map[522] = "bhe";
           Map[523] = "bho";
           Map[524] = "bhya";
           Map[525] = "bhyu";
           Map[526] = "bhye";
           Map[527] = "bhyo";

           Map[528] = "Pa";
           Map[529] = "Pi";
           Map[530] = "Peu";
           Map[531] = "Pu";
           Map[532] = "Pe";
           Map[533] = "Po";
           Map[534] = "Pya";
           Map[535] = "Pyu";
           Map[536] = "Pye";
           Map[537] = "Pyo";

           Map[538] = "ma";
           Map[539] = "mi";
           Map[540] = "meu";
           Map[541] = "mu";
           Map[542] = "me";
           Map[543] = "mo";
           Map[544] = "mya";
           Map[545] = "myu";
           Map[546] = "mye";
           Map[547] = "myo";

           Map[548] = "fa";
           Map[549] = "fi";
           Map[550] = "feu";
           Map[551] = "fu";
           Map[552] = "fe";
           Map[553] = "fo";
           Map[554] = "fya";
           Map[555] = "fyu";
           Map[556] = "fye";
           Map[557] = "fyo";

           Map[558] = "va";
           Map[559] = "vi";
           Map[560] = "veu";
           Map[561] = "vu";
           Map[562] = "ve";
           Map[563] = "vo";
           Map[564] = "vya";
           Map[565] = "vyu";
           Map[566] = "vye";
           Map[567] = "vyo";

           Map[568] = "ra";
           Map[569] = "ri";
           Map[570] = "reu";
           Map[571] = "ru";
           Map[572] = "re";
           Map[573] = "ro";
           Map[574] = "rya";
           Map[575] = "ryu";
           Map[576] = "rye";
           Map[577] = "ryo";
           Map[578] = "rwa";
           Map[579] = "rwi";
           Map[580] = "rwe";
           Map[581] = "rwo";

           Map[582] = "space";
           Map[583] = "enter";

           Map[584] = "。";
           Map[585] = "、";
           Map[586] = ":";
           Map[587] = ";";
           Map[588] = "?";
           Map[589] = "!";
           Map[590] = "…";

           Map[591] = "@";
           Map[592] = "#";
           Map[593] = "&";
           Map[594] = "%";
           Map[595] = "|";
           Map[596] = "`";

           Map[597] = "(";
           Map[598] = ")";
           Map[599] = "{";
           Map[600] = "}";
           Map[601] = "[";
           Map[602] = "]";
           Map[603] = "「";
           Map[604] = "」";
           Map[605] = "『";
           Map[606] = "』";
           Map[607] = "【";
           Map[608] = "】";

           Map[609] = "°"; // 度
           Map[610] = "∞";
           Map[611] = "∝";
           Map[612] = "※";
           Map[613] = "*";
           Map[614] = "★";
           Map[615] = "☆";
           Map[616] = "♪";

           Map[617] = "+";
           Map[618] = "-"; // 全マイナス
           Map[619] = "±";
           Map[620] = "_"; // 全アンダーライン
           Map[621] = "×"; // かける,乗算
           Map[622] = "・"; // 中点
           Map[623] = "÷";
           Map[624] = "/";
           Map[625] = "\";
           Map[626] = "^";
           Map[627] = "√";
           Map[628] = "o+"; // 半角
           Map[629] = "o*"; // 半角

           Map[630] = "=";
           Map[631] = "≠";
           Map[632] = "≒";
           Map[633] = "≡";
           Map[634] = "<";
           Map[635] = "≪"; // より非常に小さい
           Map[636] = "≦";
           Map[637] = ">";
           Map[638] = "≫"; // より非常に大きい
           Map[639] = "≧";

           Map[640] = "¬"; // でない,否定
           Map[641] = "∨";
           Map[642] = "∧";
           Map[643] = "~";
           Map[644] = "∵";
           Map[645] = "∴";
           Map[646] = "∀";
           Map[647] = "∃";

           Map[648] = "∈";
           Map[649] = "∈≠";
           Map[650] = "∋";
           Map[651] = "∋≠";
           Map[652] = "⊂";
           Map[653] = "⊆";
           Map[654] = "⊃";
           Map[655] = "⊇";
           Map[656] = "∪";
           Map[657] = "∩";
           Map[658] = "o/"; // 半角

           Map[659] = "→";
           Map[660] = "←";
           Map[661] = "↑";
           Map[662] = "↓";
           Map[663] = "⇒";
           Map[664] = "<=";
           Map[665] = "⇔";

           Map[666] = "⊿"; // 環境依存文字
           Map[667] = "∇";
           Map[668] = "∑"; // 環境依存文字
           Map[669] = "∑∑"; // 環境依存文字
           Map[670] = "dd"; // 半角
           Map[671] = "∂";
           Map[672] = "∫";
           Map[673] = "∮"; // 環境依存文字
           Map[674] = "∬"; // 2重積分
           Map[675] = "∮∮"; // 環境依存文字
           Map[676] = "∫∬"; // 積分 2重積分
       }

       public string Transcribe(ushort[] sa)
       {
           if (sa == null)
               return null;
           if (sa.Length == 0)
               return "";

           StringBuilder ret = new StringBuilder();

           ret.Append(Map[sa[0]]);
           for (int i = 1; i < sa.Length; i++)
               ret.Append('_').Append(Map[sa[i]]);

           return ret.ToString();
       }

       public ushort[] Untranscribe(string transcribedSA)
       {
           if (transcribedSA == null)
               return null;
           if (transcribedSA == "")
               return new ushort[0];

           string[] tmp = transcribedSA.Split(new char[] { '_', '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);

           ushort[] ret = new ushort[tmp.Length];

           for (int i = 0; i < tmp.Length; i++)
           {
               int index = Map.IndexOf(tmp[i]);
               if (index < 0)
                   throw new Exception();
               ret[i] = (ushort)index;
           }

           return ret;
       }

       public string TranslateNumber(ushort[] sa)
       {
           string ret = "";

           foreach (ushort i in sa)
           {
               if (i >= 0 && i <= 9)
                   ret += i.ToString();
               else if (i == Untranscribe("-")[0])
                   ret += '-';
               else if (i == Untranscribe("・")[0])
                   ret += '.';
               else if (i == Untranscribe("e")[0])
                   ret += 'e';
           }

           return ret;
       }

       public string TranslateNumber(string transcribedSA)
       {
           return TranslateNumber(Untranscribe(transcribedSA));
       }

       public string TranslateNumberHex(ushort[] sa)
       {
           string ret = "";

           foreach (ushort i in sa)
           {
               if (i >= 0 && i <= 9)
                   ret += i.ToString();
               else if (i >= 10 && i <= 15)
                   ret += (char)('a' + (i - 10));
           }

           return ret;
       }

       public string TranslateNumberHex(string transcribedSA)
       {
           return TranslateNumberHex(Untranscribe(transcribedSA));
       }

       public ushort[] UntranslateNumber(string abc)
       {
           List<ushort> ret = new List<ushort>();

           foreach (char i in abc)
           {
               if (i >= '0' && i <= '9')
                   ret.Add((ushort)(i - '0'));
               else if (i == '-')
                   ret.Add(Untranscribe("-")[0]);
               else if (i == '.')
                   ret.Add(Untranscribe("・")[0]);
               else if (i == 'e' || i == 'E')
                   ret.Add(Untranscribe("e")[0]);
           }

           return ret.ToArray();
       }

       public string _UntranslateNumber(string abc)
       {
           return Transcribe(UntranslateNumber(abc));
       }

       public ushort[] UntranslateNumberHex(string abc)
       {
           List<ushort> ret = new List<ushort>();

           string _abc = abc.ToLower();

           foreach (char i in _abc)
           {
               if (i >= '0' && i <= '9')
                   ret.Add((ushort)(i - '0'));
               else if (i >= 'a' && i <='f')
                   ret.Add((ushort)((i - 'a') + 10));
           }

           return ret.ToArray();
       }

       public string _UntranslateNumberHex(string abc)
       {
           return Transcribe(UntranslateNumberHex(abc));
       }
   }
}
名前      編集用パスワード(省略可)    パスワードの記憶
数式 αβγ IPA http:// 画像 B I U 上 下
(添付ファイルは http://www.jkofsp.net/up/ にアップロードしてください)