回答編集履歴

5

BOM無し決め打ちの場合を追記

2020/08/17 07:31

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -21,3 +21,15 @@
21
21
  質問が編集されたので追記。
22
22
 
23
23
  サーバー1で出力されるファイルが間違いなくBOMなしのUTF8ファイルだというのであれば、ファイルの先頭に固定で0xEF 0xBB 0xBFをつけるだけでよいのでは?
24
+
25
+
26
+
27
+ ---
28
+
29
+ 1ファイル、BOMなしかを確認せずに決め打ちで追加する場合。
30
+
31
+ ```PowerShell
32
+
33
+ ((&{([byte[]] @(0xEF, 0xBB, 0xBF))}) + (get-content BOM追加するファイルパス -encoding byte)) | set-content BOM追加するファイルパス -encoding byte
34
+
35
+ ```

4

指摘追加

2020/08/17 07:31

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -13,3 +13,11 @@
13
13
  PowerShellのみで処理できます。
14
14
 
15
15
  `*.cpp,*.hpp`の部分は処理したいファイル名に合わせて変更してください。
16
+
17
+
18
+
19
+ ---
20
+
21
+ 質問が編集されたので追記。
22
+
23
+ サーバー1で出力されるファイルが間違いなくBOMなしのUTF8ファイルだというのであれば、ファイルの先頭に固定で0xEF 0xBB 0xBFをつけるだけでよいのでは?

3

コード転載

2020/08/17 06:52

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1,6 +1,12 @@
1
1
  `UTF8 BOM 付ける Windows`で検索すると以下のページが出てきました。
2
2
 
3
3
  [WindowsですべてのUTF-8ファイルにBOMを付ける、たったひとつの冴えたやり方](https://qiita.com/aokomoriuta/items/b1182d310ec4ef2d76b7)
4
+
5
+ ```PowerShell
6
+
7
+ get-childitem * -include *.cpp,*.hpp -Recurse | foreach-object {((&{if ((Compare-Object (get-content $_.FullName -encoding byte)[0..2] @(0xEF, 0xBB, 0xBF)).length -eq 0){ @() } else { ([byte[]] @(0xEF, 0xBB, 0xBF)) } }) + (get-content $_.FullName -encoding byte)) | set-content $_.FullName -encoding byte}
8
+
9
+ ```
4
10
 
5
11
 
6
12
 

2

ファイル名について追記

2020/08/17 06:48

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -6,4 +6,4 @@
6
6
 
7
7
  PowerShellのみで処理できます。
8
8
 
9
- 当然ですが、`*.cpp,*.hpp`の部分は処理したいファイル名に合わせて変更してください。
9
+ `*.cpp,*.hpp`の部分は処理したいファイル名に合わせて変更してください。

1

ファイル名について追記

2020/08/17 06:46

投稿

SHOMI
SHOMI

スコア4079

test CHANGED
@@ -1,3 +1,9 @@
1
- `UTF8 BOM 付ける Windows`で検索すると以下のページが出てきますが、だめですか?
1
+ `UTF8 BOM 付ける Windows`で検索すると以下のページが出てきました。
2
2
 
3
3
  [WindowsですべてのUTF-8ファイルにBOMを付ける、たったひとつの冴えたやり方](https://qiita.com/aokomoriuta/items/b1182d310ec4ef2d76b7)
4
+
5
+
6
+
7
+ PowerShellのみで処理できます。
8
+
9
+ 当然ですが、`*.cpp,*.hpp`の部分は処理したいファイル名に合わせて変更してください。