■モダンエクスペリエンスでCSVを読み込む際、エンコードで「Shift-JIS」を指定すると
「エンコード”Shft-JIS」はサポートされていませんというエラーが出る。
【解消方法】
InvokeMethodで以下を呼び出せば、その後は"shift_jis"が通るようです。
設定値は以下
TargetType:System.Text.Encording
MethodName:RegisterProvider
引数
Direction:in または「入力」
Type:EncodingProvider
Value:System.Text.CodePagesEncodingProvider.Instance
※パラメーターについて補足
【解説】
UiPathでは、標準でShift-JISエンコーディングがサポートされていないため、特定のファイル操作やテキスト処理でエラーが発生することがあります。この問題を解決する一般的な方法は、.NET Frameworkの機能を利用してShift-JISエンコーディングを動的に追加することです。
具体的には、UiPathで `Invoke Method` アクティビティを使用し、.NETの `System.Text.Encoding` クラスの `RegisterProvider` メソッドを呼び出して、Shift-JISを含む追加のエンコーディングプロバイダを登録します。これにより、UiPathのアクティビティがShift-JISエンコードされたファイルやテキストを正しく扱えるようになります。
`Invoke Method` アクティビティでは、ターゲットオブジェクトに `System.Text.Encoding`、メソッド名に `RegisterProvider`、そして引数に `System.Text.CodePagesEncodingProvider.Instance` を指定することで、Shift-JISを含む多くのエンコーディングが利用可能になります。
この設定は、Shift-JISでエンコードされたテキストファイルの読み書きや、外部システムとの文字コード互換性を必要とする場合に特に有効です。
【補足】
① **`System.Text.Encoding` クラスについて**:
`System.Text.Encoding` クラスは、.NET Framework内で文字エンコーディングを表すクラスです。このクラスは、さまざまな文字エンコーディングスキーム(例: UTF-8, ASCII, Unicode)をサポートし、文字列とバイト配列間の相互変換を行うメソッドを提供します。
② **`RegisterProvider` メソッドについて**:
`System.Text.Encoding.RegisterProvider` メソッドは、追加の文字エンコーディングプロバイダをシステムに登録するために使用されます。このメソッドを呼び出すことで、.NET Frameworkの標準外のエンコーディング(例: Shift-JIS)に対応することが可能になります。
③ **エンコーディングプロバイダについて**:
エンコーディングプロバイダは、特定の文字エンコーディングスキームを実装するためのコンポーネントです。これにより、プログラムは異なるエンコーディングスキームを認識し、それらを適切に扱うことができます。標準のエンコーディング以外に追加のエンコーディングをサポートするために、追加のエンコーディングプロバイダが必要になります。
【参考URL】