読者です 読者をやめる 読者になる 読者になる

UIがWebでUnicodeな文字が入力できるのにデータ出力がCSVなんでCP932以外を弾くスクリプトを書いてみた

JavaScript Excel

ありがたいことに

てなサイトがあったので、そこの表を忠実にチェックデータに落としました。力技です。

function isValidInCP932(value) {
  var length = value.length;
  for (var i = 0; i < length; i++) {
    var c = value.charAt(i);
    if (isValidInCP932.Table.indexOf(c, 0) == -1) {
      return c;
    }
  }
  return "";
}
isValidInCP932.Table =
  " !\"#$%&'()*+,-./" +
  "0123456789:;<=>?" +
  "@ABCDEFGHIJKLMNO" +
  "PQRSTUVWXYZ[\\]^_" +
  "`abcdefghijklmno" +
  "pqrstuvwxyz{|}~ " +
  "。「」、・ヲァィゥェォャュョッ" +
  "ーアイウエオカキクケコサシスセソ" +
  "タチツテトナニヌネノハヒフヘホマ" +
  "ミムメモヤユヨラリルレロワン゙゚" +
  " 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+−±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇" +
  "◆□■△▲▽▼※〒→←↑↓〓∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯" +
  "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" +
  "ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん" +
  "ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ" +
  "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω" +
  "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя" +
  "─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂" + /* 以下、延々とCP932な文字列が続く */ + "";

はてダに貼ると文字化けしちゃうから、あとでgithubにあげておきます。

あげました(2012.07.18追記)

結論


sjisな*.csvしか読めないExcel氏ね!