質問編集履歴

15

2020/08/03 09:22

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,9 @@
1
+ すみません。8/3 18時以降はパソコンがいじれないので結果報告ができません。なので明日になってしまいます。申し訳ありません
2
+
3
+
4
+
5
+
6
+
1
7
  テキストファイルをアップロードしてテキストファイルの文字コードがANSI等だと文字化けが起きてしまいます。なので文字化けが起きないよう何らかの手段があれば教えてください
2
8
 
3
9
 

14

2020/08/03 09:22

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- テキストファイルをアップロードしてテキストファイルの文字コードがANSIだと文字化けが起きてしまいます。なので文字化けが起きないよう何らかの手段があれば教えてください
1
+ テキストファイルをアップロードしてテキストファイルの文字コードがANSIだと文字化けが起きてしまいます。なので文字化けが起きないよう何らかの手段があれば教えてください
2
2
 
3
3
 
4
4
 

13

2020/08/03 07:27

投稿

syugaaburesu
test CHANGED
@@ -1 +1 @@
1
- FileReaderでファイル直接読み込みたい
1
+ 文字化け防止のため文字コード統一したい
test CHANGED
@@ -1,20 +1,8 @@
1
- FireReaderは大体
2
-
3
- <input type=file>で選択された要素を使用するかと思うのですが
4
-
5
- input使わずローカル上のファイルを何らか変数に入れそれをFileReaderで読み込ます事は可能しょうか?言葉足らずですみません
1
+ テキストファイルアップロードしてテキストファイルの文字コードがANSIだと文字化けが起きいま。なの文字化けが起きないよ何らの手段があれば教えてください
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
2
+
3
+
4
+
17
- すみません。詳しい環境追記致します
5
+ 詳しい環境追記致します
18
6
 
19
7
  WEBサーバ IIS8.0
20
8
 
@@ -44,6 +32,8 @@
44
32
 
45
33
  下記関係あるであろうコード記載します
46
34
 
35
+ 下記コードはファイルをアップロードして表示することは出来ます。テキストファイル内にhtmlを記述するとそれが反映できるようにもなっています。しかし、文字コードがおかしいと文字化けしてしまいます。
36
+
47
37
  ```html
48
38
 
49
39
  <!-- 202007311050 -->
@@ -577,3 +567,7 @@
577
567
 
578
568
 
579
569
  知人に聞いたところサーバサイドでアップロードしたファイルを開いてUTF形式で保存すればライブラリを使わなくていいとの事でした。先程ご返信頂いた人の中にEncordingConverterというのがあったりするという事だったのでライブラリ云々を考えないでこんな手段があるというのがありましたら教えていただいただけると幸いです
570
+
571
+
572
+
573
+ やりたいことを簡潔にしました。タイトル等変更しました。

12

2020/08/03 07:23

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
@@ -569,3 +569,11 @@
569
569
  }
570
570
 
571
571
  ```
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+ 知人に聞いたところサーバサイドでアップロードしたファイルを開いてUTF形式で保存すればライブラリを使わなくていいとの事でした。先程ご返信頂いた人の中にEncordingConverterというのがあったりするという事だったのでライブラリ云々を考えないでこんな手段があるというのがありましたら教えていただいただけると幸いです

11

2020/08/03 07:12

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
@@ -35,3 +35,537 @@
35
35
 
36
36
 
37
37
  アップロードするテキストファイルは基本SJISやUTF-8等の有名所です。そのままだと文字化けしてしまうのでどの文字コードでもWeb上に表示できるようにしたいです
38
+
39
+
40
+
41
+
42
+
43
+ 何度も何度も申し訳ありません。もう少し頑張ってみようと思います
44
+
45
+ 下記関係あるであろうコード記載します
46
+
47
+ ```html
48
+
49
+ <!-- 202007311050 -->
50
+
51
+ <html lang="ja">
52
+
53
+ <head>
54
+
55
+ <meta charset="utf-8">
56
+
57
+ <title></title>
58
+
59
+ <link rel="stylesheet" type="text/css" href="test.css" />
60
+
61
+ </head>
62
+
63
+ <body>
64
+
65
+ <script type="text/javascript" src="../common/jquery-3.4.1.min.js"></script>
66
+
67
+ <script type="text/javascript" src="../manage/test.js"></script>
68
+
69
+
70
+
71
+ <div class="version">
72
+
73
+ var:1.00
74
+
75
+ </div>
76
+
77
+
78
+
79
+ <div class="caption_box1">
80
+
81
+ <fieldset><legend class="test1">test1</legend>
82
+
83
+ <pre><div class="usertext" id="test1"></div></pre></fieldset>
84
+
85
+ </div>
86
+
87
+
88
+
89
+ <div class="caption_box2">
90
+
91
+ <fieldset><legend class="test2">test2</legend>
92
+
93
+ <pre><div class="usertext" id="test2"></div></pre></fieldset>
94
+
95
+ </div>
96
+
97
+
98
+
99
+ <div class="caption_box3">
100
+
101
+ <fieldset><legend class="test3">test3</legend>
102
+
103
+ <pre><div class="usertext" id="test3"></div></pre></fieldset>
104
+
105
+ </div>
106
+
107
+
108
+
109
+ <div class="caption_box4">
110
+
111
+ <label for="txtfile">
112
+
113
+ <a id="modal-open" class="button-link">ファイル取込</a>
114
+
115
+ </label>
116
+
117
+ </div>
118
+
119
+
120
+
121
+ <!-- ここからモーダルウィンドウ -->
122
+
123
+ <div id="modal-content">
124
+
125
+ <form id="fileForm">
126
+
127
+ <div>アカウント: admin</div>
128
+
129
+ <input type="text" id="password">
130
+
131
+ <input type="button" id="md5Button" value="認証ボタン">
132
+
133
+
134
+
135
+ <div class="dummy">
136
+
137
+ <input type="button" id="dummyButton1" value="test1ボタン">
138
+
139
+ <input type="button" id="dummyButton2" value="test2ボタン">
140
+
141
+ <input type="button" id="dummyButton3" value="test3ボタン">
142
+
143
+ </div>
144
+
145
+ </form>
146
+
147
+
148
+
149
+ <p><a id="modal-close" class="button-link2">閉じる</a></p>
150
+
151
+ <!-- モーダルウィンドウのコンテンツ終了 -->
152
+
153
+ </div>
154
+
155
+ </body>
156
+
157
+ </html>
158
+
159
+ ```
160
+
161
+
162
+
163
+ ```JavaScript
164
+
165
+ const HOST = "https://192.168.100.204/";
166
+
167
+ const root = HOST + "client/manage/txt/";
168
+
169
+ const test1 = "test1.txt";
170
+
171
+ const test2 = "test2.txt";
172
+
173
+ const test3 = "test3.txt";
174
+
175
+
176
+
177
+ //------------------------------------------
178
+
179
+ // 表示処理を行います
180
+
181
+ //------------------------------------------
182
+
183
+ window.onload = function() {
184
+
185
+ $.ajaxSetup({cache: false});
186
+
187
+ $("#test1").load(root + test1);
188
+
189
+ $("#test2").load(root + test2);
190
+
191
+ $("#test3").load(root + test3);
192
+
193
+ $("#dummyButton1")[0].onclick = onClickDummyButton1;
194
+
195
+ $("#dummyButton2")[0].onclick = onClickDummyButton2;
196
+
197
+ $("#dummyButton3")[0].onclick = onClickDummyButton3;
198
+
199
+ $("#md5Button")[0].onclick = onclickMd5Button;
200
+
201
+ }
202
+
203
+
204
+
205
+ //------------------------------------------
206
+
207
+ // 認証処理を行います
208
+
209
+ //------------------------------------------
210
+
211
+ function onclickMd5Button() {
212
+
213
+ var formData = new FormData();
214
+
215
+ formData.append("user_name", "admin");
216
+
217
+ formData.append("password", $("#password")[0].value); // admin
218
+
219
+
220
+
221
+ $.ajax({
222
+
223
+ url : HOST + "/Server/Server/password_md5_checker.aspx",
224
+
225
+ type : "POST",
226
+
227
+ data : formData,
228
+
229
+ cache : false,
230
+
231
+ contentType : false,
232
+
233
+ processData : false,
234
+
235
+ dataType : "html",
236
+
237
+ async: false
238
+
239
+ })
240
+
241
+ .done(function(data, textStatus, jqXHR){
242
+
243
+ if(JSON.parse(data).IsMatchPassword){
244
+
245
+ document.getElementById("kekka").innerHTML = "";
246
+
247
+ document.getElementById("upload").innerHTML = "";
248
+
249
+ document.getElementById('dummyButton1').style.display = 'inline';
250
+
251
+ document.getElementById('dummyButton2').style.display = 'inline';
252
+
253
+ document.getElementById('dummyButton3').style.display = 'inline';
254
+
255
+ }else{
256
+
257
+ document.getElementById("kekka").innerHTML = "パスワードが間違っています";
258
+
259
+ document.getElementById("upload").innerHTML = "";
260
+
261
+ document.getElementById('dummyButton1').style.display = 'none';
262
+
263
+ document.getElementById('dummyButton2').style.display = 'none';
264
+
265
+ document.getElementById('dummyButton3').style.display = 'none';
266
+
267
+ }
268
+
269
+ });
270
+
271
+ }
272
+
273
+ //------------------------------------------
274
+
275
+ // アップロード処理を行います1
276
+
277
+ //------------------------------------------
278
+
279
+ function onClickDummyButton1() {
280
+
281
+ const input = document.createElement('input');
282
+
283
+ input.type = 'file';
284
+
285
+ input.accept = '.txt, text/plain';
286
+
287
+ input.onchange = function(event) {
288
+
289
+ var formData = new FormData();
290
+
291
+ formData.append("text", event.target.files[0], test1);
292
+
293
+
294
+
295
+ $.ajax({
296
+
297
+ url : HOST + "/Server/Server/info_uploader.aspx",
298
+
299
+ type : "POST",
300
+
301
+ data : formData,
302
+
303
+ cache : false,
304
+
305
+ contentType : false,
306
+
307
+ processData : false,
308
+
309
+ dataType : "html",
310
+
311
+ async: false
312
+
313
+ })
314
+
315
+ .done(function(){
316
+
317
+ document.getElementById("upload").innerHTML = "test1をアップロードしました";
318
+
319
+ });
320
+
321
+ };
322
+
323
+ input.click();
324
+
325
+ }
326
+
327
+
328
+
329
+ //------------------------------------------
330
+
331
+ // アップロード処理を行います2
332
+
333
+ //------------------------------------------
334
+
335
+ function onClickDummyButton2() {
336
+
337
+ const input = document.createElement('input');
338
+
339
+ input.type = 'file';
340
+
341
+ input.accept = '.txt, text/plain';
342
+
343
+ input.onchange = function(event) {
344
+
345
+ var formData = new FormData();
346
+
347
+ formData.append("text", event.target.files[0], test2);
348
+
349
+
350
+
351
+ $.ajax({
352
+
353
+ url : HOST + "/Server/Server/info_uploader.aspx",
354
+
355
+ type : "POST",
356
+
357
+ data : formData,
358
+
359
+ cache : false,
360
+
361
+ contentType : false,
362
+
363
+ processData : false,
364
+
365
+ dataType : "html",
366
+
367
+ async: false
368
+
369
+ })
370
+
371
+ .done(function(){
372
+
373
+ document.getElementById("upload").innerHTML = "test2をアップロードしました";
374
+
375
+ });
376
+
377
+ };
378
+
379
+ input.click();
380
+
381
+ }
382
+
383
+
384
+
385
+ //------------------------------------------
386
+
387
+ // アップロード処理を行います3
388
+
389
+ //------------------------------------------
390
+
391
+ function onClickDummyButton3() {
392
+
393
+ const input = document.createElement('input');
394
+
395
+ input.type = 'file';
396
+
397
+ input.accept = '.txt, text/plain';
398
+
399
+ input.onchange = function(event) {
400
+
401
+ var formData = new FormData();
402
+
403
+ formData.append("text", event.target.files[0], test3);
404
+
405
+
406
+
407
+ $.ajax({
408
+
409
+ url : HOST + "/Server/Server/info_uploader.aspx",
410
+
411
+ type : "POST",
412
+
413
+ data : formData,
414
+
415
+ cache : false,
416
+
417
+ contentType : false,
418
+
419
+ processData : false,
420
+
421
+ dataType : "html",
422
+
423
+ async: false
424
+
425
+ })
426
+
427
+ .done(function(){
428
+
429
+ document.getElementById("upload").innerHTML = "test3をアップロードしました";
430
+
431
+ });
432
+
433
+ };
434
+
435
+ input.click();
436
+
437
+ }
438
+
439
+
440
+
441
+ //------------------------------------------
442
+
443
+ // モーダルウィンドウ表示処理を行います
444
+
445
+ //------------------------------------------
446
+
447
+ $(function(){
448
+
449
+ $("#modal-open").click( function(){
450
+
451
+ $( this ).blur() ;
452
+
453
+ if( $( "#modal-overlay" )[0] ) return false ;
454
+
455
+ $( "body" ).append( '<div id="modal-overlay"></div>' ) ;
456
+
457
+ $( "#modal-overlay" ).fadeIn() ;
458
+
459
+ centeringModalSyncer() ;
460
+
461
+ $( "#modal-content" ).fadeIn() ;
462
+
463
+ $( "#modal-overlay,#modal-close" ).unbind().click( function(){
464
+
465
+ $( "#modal-content,#modal-overlay" ).fadeOut(function(){
466
+
467
+ $('#modal-overlay').remove() ;
468
+
469
+ } ) ;
470
+
471
+ } ) ;
472
+
473
+ } ) ;
474
+
475
+
476
+
477
+ $( window ).resize( centeringModalSyncer ) ;
478
+
479
+
480
+
481
+ function centeringModalSyncer() {
482
+
483
+ var w = $( window ).width() ;
484
+
485
+ var h = $( window ).height() ;
486
+
487
+ var cw = $( "#modal-content" ).outerWidth();
488
+
489
+ var ch = $( "#modal-content" ).outerHeight();
490
+
491
+
492
+
493
+ $( "#modal-content" ).css( {"left": ((w - cw)/2) + "px","top": ((h - ch)/2) + "px"} ) ;
494
+
495
+ }
496
+
497
+ } ) ;
498
+
499
+ ```
500
+
501
+
502
+
503
+ ```サーバサイド c#
504
+
505
+ using System;
506
+
507
+ using System.Collections.Generic;
508
+
509
+ using System.IO;
510
+
511
+ using System.Linq;
512
+
513
+ using System.Text;
514
+
515
+ using System.Web;
516
+
517
+ using System.Web.UI;
518
+
519
+ using System.Web.UI.WebControls;
520
+
521
+
522
+
523
+ namespace Server
524
+
525
+ {
526
+
527
+ public partial class info_uploader : Page
528
+
529
+ {
530
+
531
+ const string RELATIVE_PATH = "../../Client/Manage/txt/";
532
+
533
+
534
+
535
+ readonly string _currentPath = AppDomain.CurrentDomain.BaseDirectory;
536
+
537
+
538
+
539
+ protected void Page_Load(object sender, EventArgs e)
540
+
541
+ {
542
+
543
+ var file = Request.Files["text"];
544
+
545
+ if (file == null)
546
+
547
+ return;
548
+
549
+
550
+
551
+ var filePath = string.Format(@"{0}{1}{2}", _currentPath, RELATIVE_PATH, file.FileName);
552
+
553
+ file.SaveAs(filePath);
554
+
555
+
556
+
557
+ var response = HttpContext.Current.Response;
558
+
559
+ response.ClearContent();
560
+
561
+ response.Buffer = false;
562
+
563
+ response.End();
564
+
565
+ }
566
+
567
+ }
568
+
569
+ }
570
+
571
+ ```

10

2020/08/03 06:38

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
File without changes

9

2020/08/03 04:59

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
File without changes

8

2020/08/03 04:59

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
File without changes

7

2020/08/03 04:59

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
File without changes

6

2020/08/03 04:37

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
File without changes

5

2020/08/03 04:37

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
@@ -34,4 +34,4 @@
34
34
 
35
35
 
36
36
 
37
- アップロードするテキストファイルは基本SJISやUTF-8等の有名所です。どの文字コードでもWeb上に表示できるようにしたいです
37
+ アップロードするテキストファイルは基本SJISやUTF-8等の有名所です。そのままだと文字化けしてしまうのでどの文字コードでもWeb上に表示できるようにしたいです

4

2020/08/03 04:28

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
@@ -34,8 +34,4 @@
34
34
 
35
35
 
36
36
 
37
- んな文字コードでも表示したいと記述しましたが
37
+ アップロードするテキストファイルは基本SJISやUTF-8等の有名所です。文字コードでもWeb上に表示できるようにしたいです
38
-
39
- 有名所だけ表示出来れば大丈夫です。
40
-
41
- SJIS.UNICODE.EUC辺り

3

2020/08/03 04:25

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
@@ -31,3 +31,11 @@
31
31
 
32
32
 
33
33
  プログラムの内容を端的に言うとボタンがひとつとテキストエリアが3つあります。ボタンを押すとポップアップが表示され3つのテキストエリアのどこにファイルをアップロードするかの内容と共に3つのボタンが表示されます。ボタンにはそれぞれのテキストエリアと連動していてボタンを押すとファイル選択ダイアログが出現、テキストファイルを指定してサーバにアップロードします。更新すると選択したボタンと連動したテキストエリアにテキストの内容が表示されます
34
+
35
+
36
+
37
+ どんな文字コードでも表示したいと記述しましたが
38
+
39
+ 有名所だけ表示出来れば大丈夫です。
40
+
41
+ SJIS.UNICODE.EUC辺り

2

2020/08/03 04:22

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
File without changes

1

2020/08/03 04:19

投稿

syugaaburesu
test CHANGED
File without changes
test CHANGED
@@ -3,3 +3,31 @@
3
3
  <input type=file>で選択された要素を使用するかと思うのですが
4
4
 
5
5
  inputを使わずローカル上のファイルを何らかの変数に入れてそれをFileReaderで読み込ます事は可能でしょうか?言葉足らずですみません
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+ すみません。詳しい環境追記致します
18
+
19
+ WEBサーバ IIS8.0
20
+
21
+ serverアプリ C# ASP.NET Webフォーム
22
+
23
+
24
+
25
+ クライアント環境
26
+
27
+ GoogleCrome
28
+
29
+ Internetexplorer11
30
+
31
+
32
+
33
+ プログラムの内容を端的に言うとボタンがひとつとテキストエリアが3つあります。ボタンを押すとポップアップが表示され3つのテキストエリアのどこにファイルをアップロードするかの内容と共に3つのボタンが表示されます。ボタンにはそれぞれのテキストエリアと連動していてボタンを押すとファイル選択ダイアログが出現、テキストファイルを指定してサーバにアップロードします。更新すると選択したボタンと連動したテキストエリアにテキストの内容が表示されます