質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1401閲覧

プログラム標準出力の文字コードは何がきめているんでしょうか

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/07/19 07:49

編集2020/07/19 07:49

プログラムの標準出力の文字コードを決めているのは何なのでしょうか?
ソースファイル? プログラムの処理系? ターミナルやシェル?


たとえば今回 node.js でプログラムを書いてたんですが

ソースコードは utf-8 で

console.log('あいうえお');

とかいて Windows10 の power shell から

node xxx.js

で実行すると power shell に正常に表示されます

これをファイルにリダイレクトすると

node xxx.js > tmp.txt

メモ帳でも sublime でも文字化けする(shiftJIS でも utf-8でもない)
謎の文字コードになってしまいます

このときプログラムや power shell 上のリダイレクト処理ではどういうことがおこってるんでしょうか


最終的に MAC 環境とリポジトリを共有してるので
基本的に入出力結果もソースコードもすべて utf-8 にしたいです

power shell は utf-8 を扱えるみたいなので
Winodws 上でも意識しなくても入出力すべて utf-8 になるようにしたいのですが
そういうことって可能でしょうか

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

未解決ですが荒れそうなので回答を締め切ります

投稿2020/07/19 10:17

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/07/19 11:38

なんだこれ。 自分が注意を受けても「荒れそう」「荒れそう」って言って逃げれば被害者ぶれると思ってんのか…。 なかなかハッピーな思考回路してるな…。
guest

0

PowerShellは標準でSift_JISの出力になります。
このため、リダイレクトの際、utf-8のコードがSift_JISに変換されます。
この際、Sift_JISで表示できない文字は別の文字に置き換えられてしまうため、もとに戻すことはできません。

PowerShellに下記コマンドを打つことで文字コードをUTF-8に変えることができます。
chcp 65001

(PowerShellの再起動でリセットされるので、起動するたび打つ必要がある。)

投稿2020/07/19 09:32

Kaleidoscope

総合スコア257

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/07/19 09:47 編集

ちょっと違います。UTF-8 の出力を Windows-31J とみなして読み込み、それを一度 UTF-16 に変換しようと試みます。その変換の過程でぐちゃぐちゃになったコードをさらに Windows-31J に変換して出力します。 chcp も手ですが、PowerShell.exe の代わりに pwsh.exe を使えば問題は解消されると思います。これは PowerShell の新バージョンですから、早めにこちらに乗り換えることがおすすめです。
退会済みユーザー

退会済みユーザー

2020/07/19 09:59

pwsh.exe は新たにインストールが必要なものですか? 最新の Windows10 に入ってるんでしょうか? C:\Windows\SysWOW64\WindowsPowerShell\ には v1.0 しかなく v1.0 の中には見当たりませんでした
退会済みユーザー

退会済みユーザー

2020/07/19 10:09 編集

7.0.3 というのをインストールしてそのうえでプログラムを実行しても何も変わらなかったのできいてます システムデフォルトのものをアップデートしなければいけないのかどうか
gentaro

2020/07/19 10:11

さっきの質問でやった後出しの件から学んでないのか…。
退会済みユーザー

退会済みユーザー

2020/07/19 10:13

http://www.gigas-jp.com/appnews/archives/7462 こちらを読みながらやったのですが別にインストールするのとシステムのデフォルトをアップデートするので、VisualStudioCodeの場合はデフォルトシェルの設定が必要みたいなことがかかれているので、node の場合もなにか設定が必要なのかなと思った次第です
gentaro

2020/07/19 10:16

そりゃ結構なんだけど、脊髄反射で質問重ねて情報を小出しにするのはこのサイトのガイドライン的にNGなんで改めようね。 https://teratail.com/help/question-tips
退会済みユーザー

退会済みユーザー

2020/07/19 10:16

なんか荒れそうなので書いて決してないのですがこの質問は閉じさせてもらいますね 回答していただいた方申し訳ありません これ以上の返答は控えさせていただきます
gentaro

2020/07/19 10:19

荒れそうも何もあなたの行動を注意してるんだから、言われたくなきゃ繰り返さなきゃそれで良いんだけど。その辺理解できてんのかな…。 荒れるとしたらあなたが荒らす時ですよ。
Zuishin

2020/07/19 11:50

インストールしただけで使ってないというオチがありそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問