Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
18-03-20 05:54 AM
エキスパートの皆さま
標記の通り、DX でBlue Prism 社から提供いただいている、File Management - JP(日本語版)で
ファイルの書き出し時のエンコード設定で、UTF-8 のBOM有り無しの設定で苦労しています。
下記プロパティの Encode の Value 欄に何かしら入力するかと思いますが、
リンク先のマイクロソフト社のサイトを参照してもよくわかりません。
また下記の「文字コード指定」のない「ファイルにテキストを書き出す」アクションは、基本どのようなエンコードを自動設定するのでしょうか?

------------------------------
Takashi Satoh
Senior Expert
NetOne Systems
Asia/Tokyo
------------------------------
標記の通り、DX でBlue Prism 社から提供いただいている、File Management - JP(日本語版)で
ファイルの書き出し時のエンコード設定で、UTF-8 のBOM有り無しの設定で苦労しています。
下記プロパティの Encode の Value 欄に何かしら入力するかと思いますが、
リンク先のマイクロソフト社のサイトを参照してもよくわかりません。
また下記の「文字コード指定」のない「ファイルにテキストを書き出す」アクションは、基本どのようなエンコードを自動設定するのでしょうか?
------------------------------
Takashi Satoh
Senior Expert
NetOne Systems
Asia/Tokyo
------------------------------
Answered! Go to Answer.
1 BEST ANSWER
Helpful Answers
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
18-03-20 08:23 AM
UTF-8(BOM有り)であれば、Encodeには「utf-8」と入力します。
UTF-8(BOM無し)は指定できないと思います。
このアクションでは System.Text.Encoding.GetEncoding(String)を使用しているためです。
そのため、UTF-8(BOM無し)にしたい場合は「文字コード指定」のない「ファイルにテキストを書き出す」を使うことになります。
「文字コード指定」のない「ファイルにテキストを書き出す」はFile.WriteAllTextのエンコード指定無しですので、UTF-8(BOM無し)が使用されます。
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.file.writealltext?view=netframework-4.8#System_IO_File_WriteAllText_System_String_System_String_
もし「文字コード指定」のある「ファイルにテキストを書き出す」を変更することが可能でしたら、
以下のようにする方法もあります。
------------------------------
Hitoshi Namiki
Section Chief
TKC Corporation
------------------------------
UTF-8(BOM無し)は指定できないと思います。
このアクションでは System.Text.Encoding.GetEncoding(String)を使用しているためです。
そのため、UTF-8(BOM無し)にしたい場合は「文字コード指定」のない「ファイルにテキストを書き出す」を使うことになります。
「文字コード指定」のない「ファイルにテキストを書き出す」はFile.WriteAllTextのエンコード指定無しですので、UTF-8(BOM無し)が使用されます。
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.file.writealltext?view=netframework-4.8#System_IO_File_WriteAllText_System_String_System_String_
もし「文字コード指定」のある「ファイルにテキストを書き出す」を変更することが可能でしたら、
以下のようにする方法もあります。
Try If String.IsNullOrEmpty(Encode) Then File.WriteAllText(File_Name, Text) Else File.WriteAllText(File_Name, Text, System.Text.Encoding.GetEncoding(Encode)) End If Success = True Message = "" Catch e As Exception Success = False Message = e.Message End Try
------------------------------
Hitoshi Namiki
Section Chief
TKC Corporation
------------------------------
※当回答は個人的な見解です。間違い等があってもご容赦ください。あくまで自己責任でお願いいたします。
[FirstName] [LastName]
Application Developer
Utsunomiya, Japan
4 REPLIES 4
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
18-03-20 08:23 AM
UTF-8(BOM有り)であれば、Encodeには「utf-8」と入力します。
UTF-8(BOM無し)は指定できないと思います。
このアクションでは System.Text.Encoding.GetEncoding(String)を使用しているためです。
そのため、UTF-8(BOM無し)にしたい場合は「文字コード指定」のない「ファイルにテキストを書き出す」を使うことになります。
「文字コード指定」のない「ファイルにテキストを書き出す」はFile.WriteAllTextのエンコード指定無しですので、UTF-8(BOM無し)が使用されます。
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.file.writealltext?view=netframework-4.8#System_IO_File_WriteAllText_System_String_System_String_
もし「文字コード指定」のある「ファイルにテキストを書き出す」を変更することが可能でしたら、
以下のようにする方法もあります。
------------------------------
Hitoshi Namiki
Section Chief
TKC Corporation
------------------------------
UTF-8(BOM無し)は指定できないと思います。
このアクションでは System.Text.Encoding.GetEncoding(String)を使用しているためです。
そのため、UTF-8(BOM無し)にしたい場合は「文字コード指定」のない「ファイルにテキストを書き出す」を使うことになります。
「文字コード指定」のない「ファイルにテキストを書き出す」はFile.WriteAllTextのエンコード指定無しですので、UTF-8(BOM無し)が使用されます。
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.file.writealltext?view=netframework-4.8#System_IO_File_WriteAllText_System_String_System_String_
もし「文字コード指定」のある「ファイルにテキストを書き出す」を変更することが可能でしたら、
以下のようにする方法もあります。
Try If String.IsNullOrEmpty(Encode) Then File.WriteAllText(File_Name, Text) Else File.WriteAllText(File_Name, Text, System.Text.Encoding.GetEncoding(Encode)) End If Success = True Message = "" Catch e As Exception Success = False Message = e.Message End Try
------------------------------
Hitoshi Namiki
Section Chief
TKC Corporation
------------------------------
※当回答は個人的な見解です。間違い等があってもご容赦ください。あくまで自己責任でお願いいたします。
[FirstName] [LastName]
Application Developer
Utsunomiya, Japan
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
19-03-20 01:25 AM
Hitoshi Namiki-san
さっそくの返答ありがとうございます
早速試してみようと思います。
やっぱりコミュニティに聞いてみて良かった ☺
更新
頂いたアドバイスのポイント、見事にビンゴでした!
実はこのジョブ、SAP に入金明細データを投入する際の全銀手順ファイルに対して、入金の都度口座名義人名称が微妙に変わる支払人様の場合、データ取込後 SAP 内の後処理で支払人コードを付加できない問題を解決するためのものなのですが、
肝心の編集後の全銀手順ファイルが SAP にはねられてしまうというシャレにならない問題であったのです。
本当に助かりましたー
今後できるかどうかわかりませんが、自分もなにかしらコミュニティに貢献したいと思いますー (技術的にはほぼ無理⤵)
------------------------------
Takashi Satoh
Senior Expert
NetOne Systems
Asia/Tokyo
------------------------------
さっそくの返答ありがとうございます
早速試してみようと思います。
やっぱりコミュニティに聞いてみて良かった ☺
更新
頂いたアドバイスのポイント、見事にビンゴでした!
実はこのジョブ、SAP に入金明細データを投入する際の全銀手順ファイルに対して、入金の都度口座名義人名称が微妙に変わる支払人様の場合、データ取込後 SAP 内の後処理で支払人コードを付加できない問題を解決するためのものなのですが、
肝心の編集後の全銀手順ファイルが SAP にはねられてしまうというシャレにならない問題であったのです。
本当に助かりましたー
今後できるかどうかわかりませんが、自分もなにかしらコミュニティに貢献したいと思いますー (技術的にはほぼ無理⤵)
------------------------------
Takashi Satoh
Senior Expert
NetOne Systems
Asia/Tokyo
------------------------------
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
26-03-20 08:18 AM
追加のご相談です
Namiki-san のアドバイス通り、Encodeに "utf-8" を設定したところ、
結果的に作成されるテキストファイルが、必ず UTF-8 (BOM有り) となる場合と、 UTF-8 となる場合に二分されます。(再現性あり)
特に "utf-8" を設定しているにもかかわらず、 UTF-8 となってしまう理由はなにかあるのでしょうか。
------------------------------
Takashi Satoh
Senior Expert
NetOne Systems
Asia/Tokyo
------------------------------
Namiki-san のアドバイス通り、Encodeに "utf-8" を設定したところ、
結果的に作成されるテキストファイルが、必ず UTF-8 (BOM有り) となる場合と、 UTF-8 となる場合に二分されます。(再現性あり)
特に "utf-8" を設定しているにもかかわらず、 UTF-8 となってしまう理由はなにかあるのでしょうか。
------------------------------
Takashi Satoh
Senior Expert
NetOne Systems
Asia/Tokyo
------------------------------
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
26-03-20 09:00 AM
「ファイルにテキストを追加」のほうの話ではないですよね?
「ファイルにテキストを追加」の場合は、元のファイルの文字コードのままとなります。
「ファイルにテキストを書き出す」のほうで「utf-8」を指定しているのに
BOM無しになるケースはちょっとわからないですね💦
一応、必ずUTF-8(BOM付き)で書き出すコードものせておきます。
------------------------------
並木 仁(Hitoshi Namiki)
株式会社TKC(TKC Corporation)
------------------------------
「ファイルにテキストを追加」の場合は、元のファイルの文字コードのままとなります。
「ファイルにテキストを書き出す」のほうで「utf-8」を指定しているのに
BOM無しになるケースはちょっとわからないですね💦
一応、必ずUTF-8(BOM付き)で書き出すコードものせておきます。
Try Dim enc As System.Text.Encoding = New System.Text.UTF8Encoding(True) File.WriteAllText(File_Name, Text, enc) Success = True Message = "" Catch e As Exception Success = False Message = e.Message End Try
------------------------------
並木 仁(Hitoshi Namiki)
株式会社TKC(TKC Corporation)
------------------------------
※当回答は個人的な見解です。間違い等があってもご容赦ください。あくまで自己責任でお願いいたします。
[FirstName] [LastName]
Application Developer
Utsunomiya, Japan
