トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     半角変換について
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Fla4man
Åê¹ÆNo.15920
投稿日時: 2005-3-11 17:09
職人
居住地: かまくら
投稿: 517
使用環境:
Re: 半角変換について
最初の私のレスが悪かったためちょっと誤解を与えてしまったようです。
Aikawaさんのコードのleng.lengthは必ず1になるはずです。
MXの場合ないしはSWF5以前はUsecodepageをTrueにすると
英語がきた場合
length(word)は1
UsecodepageをFalseは
length(word)は2になります。
しかしどちらの値も10進で32-126になるはずです。

元投稿者がどこまで全角に変換したかったかわからないのですが
配列方式の場合変換したくない場合は値に半角文字を入れておけばいいだけのはなしです。

全角文字にするというのはいわば「コード」から「図記号」への変換で
後の処理を考えると意味があります。
逆は用途別では無いでしょうか

Aikawaさんのコードを引用し修正すると

function init() { char_set1 = [
" ","!","”","#","$","%","&","’","(",")","*","+",",","?",".","/","0","1","2","3"
,"4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G"
,"H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","["
,"¥","]","^","_","‘","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o"
,"p","q","r","s","t","u","v","w","x","y","z","{","|","}","―"
];}
//もしも英語セットにしたいならば
//"¥"を"\"に、"―"を"?"に
function check_msg() {
msg_set = "";
//
for (i=0; i<msg.length; i++) {
word = msg.substr(i, 1);
code = String(word.charCodeAt(0));
//全角、半角判定 と変換
if ((code>=32) and (code=<126)) {
word=char_set1[code-32];
//
}
msg_set += word;
}
//

でいいのではないかと思います。
この方法は文字コードやcodepageと関係なくうまく動くはずです。

JavaScriptのリンク先の内容は逆でかつ不完全です。
JISコードではそもそも数字とアルファベットの位置はそこそこASCIIコード順なのですが
記号は一区にバラけています。

現実問題として文字コード変換の最適化はこだわらないならそんなに
コストをかけるだけ無駄です。

現実問題として今後文字コード変換をしたいという需要が出るのは
大学とか企業とかですでに膨大なEUCやISO2022のHTMドキュメントがあり
それをloadvars.ondataで読み取り変換するときぐらいだとおもいます。
又現状FlashPlayerはローカルからのセキュリティがマ社の言うポリシーと矛盾しており「非常に使える状態」
なのでプロジェクターやローカルダウンロードしたSWFから
インターネット上の全てのテキストドキュメントを読み込むことが出来
つまりそういうときにはEUCのドキュメントを変換したいと思うケースも出てくると思います。

そうした場合ユニコードを使ったコードを使うのは得策では無いです。
せっかくcodepageをTrueにすればSJISで取得できるのだから
コード変換を自前で組む場合はSJISベースで組んだほうがお徳だとおもいます。

蛇足ですが一区はこんなです。

【1区】(記号)
S-JIS   JIS  UniCode 文字

0x8140 0x2121 0x3000  (空白)
0x8141 0x2122 0x3001 、(読点)
0x8142 0x2123 0x3002 。(句点)
0x8143 0x2124 0xFF0C ,(コンマ)
0x8144 0x2125 0xFF0E .(ピリオド)
0x8145 0x2126 0x30FB ・(中点)
0x8146 0x2127 0xFF1A :(コロン)
0x8147 0x2128 0xFF1B ;(セミコロン)
0x8148 0x2129 0xFF1F ?(疑問符)
0x8149 0x212A 0xFF01 !(感嘆符)
0x814A 0x212B 0x309B ゛(濁点)
0x814B 0x212C 0x309C ゜(半濁点)
0x814C 0x212D 0x00B4 ´(アクサンテギュ)
0x814D 0x212E 0xFF40 `(アクサングラープ)
0x814E 0x212F 0x00A8 ¨(ウムラウト)
0x814F 0x2130 0xFF3E ^(アクサンシルコンフレックス)
0x8150 0x2131 0xFFE3  ̄(オーバーライン)
0x8151 0x2132 0xFF3F _(アンダーライン)
0x8152 0x2133 0x30FD ヽ(片仮名繰返し記号)
0x8153 0x2134 0x30FE ヾ(片仮名繰返し記号濁点)
0x8154 0x2135 0x309D ゝ(平仮名繰返し記号)
0x8155 0x2136 0x309E ゞ(平仮名繰返し記号濁点)
0x8156 0x2137 0x3003 〃(同じく記号)
0x8157 0x2138 0x4EDD 仝(同上記号)
0x8158 0x2139 0x3005 々(繰返し記号)
0x8159 0x213A 0x3006 〆(しめ)
0x815A 0x213B 0x3007 〇(漢字ゼロ)
0x815B 0x213C 0x30FC ー(長音記号)
0x815C 0x213D 0x2015 ―(ダッシュ)
0x815D 0x213E 0x2010 ‐(ハイフン)
0x815E 0x213F 0xFF0F /(斜線)
0x815F 0x2140 0x005C \(逆斜線)
0x8160 0x2141 0x301C ?(波ダッシュ)
0x8161 0x2142 0x2016 ?(双柱)
0x8162 0x2143 0xFF5C |(縦線)
0x8163 0x2144 0x2026 …(三点リーダ)
0x8164 0x2145 0x2025 ‥(二点リーダ)
0x8165 0x2146 0x2018 ‘(左シングル引用符)
0x8166 0x2147 0x2019 ’(右シングル引用符、アポストロフィー)
0x8167 0x2148 0x201C “(左ダブル引用符)
0x8168 0x2149 0x201D ”(右ダブル引用符)
0x8169 0x214A 0xFF08 ((始め小括弧)
0x816A 0x214B 0xFF09 )(終り小括弧)
0x816B 0x214C 0x3014 〔(始め亀甲括弧)
0x816C 0x214D 0x3015 〕(終り亀甲括弧)
0x816D 0x214E 0xFF3B [(始め大括弧)
0x816E 0x214F 0xFF3D ](終り大括弧)
0x816F 0x2150 0xFF5B {(始め中括弧)
0x8170 0x2151 0xFF5D }(終り中括弧)
0x8171 0x2152 0x3008 〈(始め山括弧)
0x8172 0x2153 0x3009 〉(終り山括弧)
0x8173 0x2154 0x300A 《(始め二重山括弧)
0x8174 0x2155 0x300B 》(終り二重山括弧)
0x8175 0x2156 0x300C 「(始めかぎ括弧)
0x8176 0x2157 0x300D 」(終りかぎ括弧)
0x8177 0x2158 0x300E 『(始め二重かぎ括弧)
0x8178 0x2159 0x300F 』(終り二重かぎ括弧)
0x8179 0x215A 0x3010 【(始めすみ付き括弧)
0x817A 0x215B 0x3011 】(終りすみ付き括弧)
0x817B 0x215C 0xFF0B +(正符号、加算記号)
0x817C 0x215D 0x2212 ?(負符号、減算記号)
0x817D 0x215E 0x00B1 ±(正又は負符号)
0x817E 0x215F 0x00D7 ×(乗算符号)
0x8180 0x2160 0x00F7 ÷(除算符号)
0x8181 0x2161 0xFF1D =(等号)
0x8182 0x2162 0x2260 ≠(等号否定)
0x8183 0x2163 0xFF1C <(不等号、より小)
0x8184 0x2164 0xFF1E >(不等号、より大)
0x8185 0x2165 0x2266 ≦(より小さいか 又は 等しい)
0x8186 0x2166 0x2267 ≧(より大きいか 又は 等しい)
0x8187 0x2167 0x221E ∞(無限大)
0x8188 0x2168 0x2234 ∴(ゆえに)
0x8189 0x2169 0x2642 ♂(雄記号)
0x818A 0x216A 0x2640 ♀(雌記号)
0x818B 0x216B 0x00B0 °(度)
0x818C 0x216C 0x2032 ′(分)
0x818D 0x216D 0x2033 ″(秒)
0x818E 0x216E 0x2103 ℃(セ氏度記号)
0x818F 0x216F 0xFFE5 ¥(円記号)
0x8190 0x2170 0xFF04 $(ドル記号)
0x8191 0x2171 0x00A2 ?(セント記号)
0x8192 0x2172 0x00A3 ?(ポンド記号)
0x8193 0x2173 0xFF05 %(パーセント)
0x8194 0x2174 0xFF03 #(番号記号)
0x8195 0x2175 0xFF06 &(アンパサンド)
0x8196 0x2176 0xFF0A *(アステリスク)
0x8197 0x2177 0xFF20 @(単価記号)
0x8198 0x2178 0x00A7 §(セクション記号)
0x8199 0x2179 0x2606 ☆(白星)
0x819A 0x217A 0x2605 ★(黒星)
0x819B 0x217B 0x25CB ○(白丸)
0x819C 0x217C 0x25CF ●(黒丸)
0x819D 0x217D 0x25CE ◎(二重丸)
0x819E 0x217E 0x25C7 ◇(菱形)


----------------
通常のハンドル名:×○○× ねた回収モードに突入 現在1/100

フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   半角変換について raptor 2005-3-9 13:47
     Re: 半角変換について A_ikawa 2005-3-9 14:56
       Re: 半角変換について Fla4man 2005-3-9 17:25
     Re: 半角変換について A_ikawa 2005-3-9 18:47
       Re: 半角変換について yoshiweb 2005-3-10 16:34
     » Re: 半角変換について Fla4man 2005-3-11 17:09
     Re: 半角変換について A_ikawa 2005-3-11 20:29
       Re: 半角変換について Fla4man 2005-3-11 23:12
         Re: 半角変換について raptor 2005-3-24 14:56

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops