回答編集履歴

2

引用範囲を修正

2018/08/04 06:06

投稿

hope_mucci
hope_mucci

スコア4447

test CHANGED
@@ -172,9 +172,11 @@
172
172
 
173
173
  > 判定したい目的)
174
174
 
175
- > 文字化け後の文字がファイル名に使えるかどうか判定したいから
175
+ 文字化け後の文字がファイル名に使えるかどうか判定したいから
176
176
 
177
- > (半角ハテナはファイル名に使用不可、全角は使用可)
177
+ (半角ハテナはファイル名に使用不可、全角は使用可)
178
+
179
+
178
180
 
179
181
  という理由なら、本回答で例示した変換表をもって事前変換するか、処理の都度検証コードでも書いた`select :var from dual`をOracle側に投げて変換後の文字列を事前取得。それをもってファイル名のバリデーションをかければいいのではないかと。
180
182
 

1

8/4 追記を受けてコメント追加

2018/08/04 06:06

投稿

hope_mucci
hope_mucci

スコア4447

test CHANGED
@@ -165,3 +165,17 @@
165
165
 
166
166
 
167
167
  なお、上のコードはOracle.ManagedDataAccessで実行した結果で、クライアント側のドライバが変わると結果が変わる可能性があるので、質問者さんのほうでも個別検証して結果を取得すべきと思います。
168
+
169
+
170
+
171
+ ### 8/4 追記を受けて
172
+
173
+ > 判定したい目的)
174
+
175
+ > 文字化け後の文字がファイル名に使えるかどうか判定したいから
176
+
177
+ > (半角ハテナはファイル名に使用不可、全角は使用可)
178
+
179
+ という理由なら、本回答で例示した変換表をもって事前変換するか、処理の都度検証コードでも書いた`select :var from dual`をOracle側に投げて変換後の文字列を事前取得。それをもってファイル名のバリデーションをかければいいのではないかと。
180
+
181
+ 前述したとおりクライアントによって変換の仕様が異なるので試しに投げてみるのが一番だと考えます。