提交 d09231af 编写于 作者: D Daniel Imms 提交者: GitHub

Merge pull request #20932 from matheusrocha89/encoding-problem

Terminal encoding problem related to issue #14586
......@@ -562,9 +562,7 @@ export class TerminalInstance implements ITerminalInstance {
});
}
env['PTYCWD'] = cwd;
if (locale) {
env['LANG'] = TerminalInstance._getLangEnvVariable(locale);
}
env['LANG'] = TerminalInstance._getLangEnvVariable(locale);
if (cols && rows) {
env['PTYCOLS'] = cols.toString();
env['PTYROWS'] = rows.toString();
......@@ -615,12 +613,12 @@ export class TerminalInstance implements ITerminalInstance {
return newEnv;
}
private static _getLangEnvVariable(locale: string) {
const parts = locale.split('-');
private static _getLangEnvVariable(locale?: string) {
const parts = locale ? locale.split('-') : [];
const n = parts.length;
const language = parts[0];
if (n === 0) {
return '';
return 'en_US.UTF-8'; // Avoid encoding problem with special chars. Issue #14586
}
if (n === 1) {
// app.getLocale can return just a language without a variant, fill in the variant for
......
......@@ -69,7 +69,7 @@ suite('Workbench - TerminalInstance', () => {
assert.equal(env2['LANG'], 'en_AU.UTF-8', 'LANG is equal to the requested locale with UTF-8');
const env3 = TerminalInstance.createTerminalEnv(parentEnv1, shell1, '/', null);
assert.ok(!('LANG' in env3), 'LANG is unset');
assert.equal(env3['LANG'], 'en_US.UTF-8', 'LANG is equal to en_US.UTF-8 as fallback.'); // More info on issue #14586
const env4 = TerminalInstance.createTerminalEnv(parentEnv2, shell1, '/', null);
assert.equal(env4['LANG'], 'en_US.UTF-8', 'LANG is equal to the parent environment\'s LANG');
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册