Free Trial

ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。

エクセルの中の文字化けを見つけたい!!

tyasui
アステロイド

数十万行あるエクセルをPostgreSQLにインサート/アップデートするワークフローを作っています。

その時に文字化け(例えば"¿"みたいなもの)があると、PostgreSQLへのインサートが失敗しAlteryxにもエラーログが残らず、いろんなトラブルの原因になってしまっています。

 

① 文字化けしたものをうまく抽出する方法か

② DBに書き込むときにエラーを見つける方法か

 

何かこの辺やってみたらいいんじゃないかというもの思い当たる方いたら教えてください。

3件の返信3
Shun001
メテオロイド

NICE SUBJECTです!

私も困っているので是非知りたいです。

Yoshiro_Fujimori
オーロラ

@tyasui さん (一部修正しました)

 

なにを「文字化け」とするかによりますが、例えばフォーミュラツールで

    Check1 = REGEX_Match([Test], "[\w\s]+")

    Check2 = REGEX_Match([Test], "[\!-~\s]+")

    Check3 = REGEX_Match([Test], "[\!-~\s\w]+")

とすると以下の結果になりますので、"¿" などは判別できるかと思いますが いかがでしょうか。

Check2だと記号はOKになりますが、今度は2バイト文字が含まれなくなりますね。。

Check3だと記号も日本語もOKそうです。

 

TestCheckCheck2Check3
abcTRUETRUETRUE
aびーcTRUEFALSETRUE
a¿cFALSEFALSEFALSE
a!cFALSETRUETRUE

 

AkimasaKajitani
17 - Castor
17 - Castor

@tyasui さん、 @Shun001 さん

 

プログラム言語でも文字化けの自動判定は至難なようです。

https://ja.stackoverflow.com/questions/34287/%E5%AF%BE%E8%B1%A1%E6%96%87%E5%AD%97%E5%88%97%E3%81%8C%...

 

文字化けしたあとの文字列を収集しておいて、一致するかどうか確認することは可能ですが、それが普通に出てくる文字列であった場合は判定は不可ですね・・・。

文字化けのしかたも色々とあるので、悩ましいですが、例えば名前が文字化けして「¿」となる、というのであれば、¿が含まれているかどうかの判定で良い気がします(名前には本来「¿」は含まれないので)。

 

対処療法になりますが、ちょっとこれくらいしか思いつきません。