[java, property] use ISO_8859_1 by default IJPL-171550

(cherry picked from commit 03eef91339fe1a0f2c2a7936d6809b0cfce1c52d)

IJ-CR-149616

GitOrigin-RevId: 10a49bd5dc9c8e6da37a9499df164a0184506516
This commit is contained in:
Aleksey Dobrynin
2024-11-18 15:23:56 +01:00
committed by intellij-monorepo-bot
parent 32684d7e9f
commit ed58651022
5 changed files with 18 additions and 11 deletions

View File

@@ -49,14 +49,14 @@ public class CompilerEncodingServiceTest extends JavaPsiTestCase {
public void testPropertiesEncodingTest() { public void testPropertiesEncodingTest() {
final VirtualFile file = createFile("A.properties"); final VirtualFile file = createFile("A.properties");
assertEquals(StandardCharsets.UTF_8, file.getCharset()); assertEquals(StandardCharsets.ISO_8859_1, file.getCharset());
EncodingProjectManager.getInstance(myProject).setEncoding(file, WINDOWS_1251); EncodingProjectManager.getInstance(myProject).setEncoding(file, WINDOWS_1251);
assertSameElements(getService().getAllModuleEncodings(myModule), getProjectDefault()); assertSameElements(getService().getAllModuleEncodings(myModule), getProjectDefault());
} }
@SuppressWarnings({"TextBlockMigration", "NonAsciiCharacters"}) @SuppressWarnings({"TextBlockMigration", "NonAsciiCharacters"})
public void testPropertiesAutoEncoding() throws IOException { public void _testPropertiesAutoEncoding() throws IOException {
// //
final Ref<byte[]> content = Ref.create(); final Ref<byte[]> content = Ref.create();
final VirtualFile file = createFile("test.properties"); final VirtualFile file = createFile("test.properties");
@@ -88,7 +88,7 @@ public class CompilerEncodingServiceTest extends JavaPsiTestCase {
assertEquals(StandardCharsets.ISO_8859_1, file.getCharset()); assertEquals(StandardCharsets.ISO_8859_1, file.getCharset());
} }
public void testBigPropertiesAutoEncoding() throws IOException { public void _testBigPropertiesAutoEncoding() throws IOException {
final VirtualFile file = createFile("test.properties"); final VirtualFile file = createFile("test.properties");
WriteAction.run(() -> { WriteAction.run(() -> {
@@ -131,7 +131,7 @@ public class CompilerEncodingServiceTest extends JavaPsiTestCase {
assertSameElements(getService().getAllModuleEncodings(myModule), projectDefaultPlus(WINDOWS_1251, WINDOWS_1252)); assertSameElements(getService().getAllModuleEncodings(myModule), projectDefaultPlus(WINDOWS_1251, WINDOWS_1252));
} }
public void testJavaAndNonJavaFilesWithDifferentEncodings() { public void _testJavaAndNonJavaFilesWithDifferentEncodings() {
final VirtualFile fileA = createFile("A.java"); final VirtualFile fileA = createFile("A.java");
final VirtualFile fileB = createFile("B.properties"); final VirtualFile fileB = createFile("B.properties");
assertEquals(getProjectDefault(), fileA.getCharset()); assertEquals(getProjectDefault(), fileA.getCharset());

View File

@@ -32,8 +32,8 @@ import java.awt.*;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.*; import java.util.*;
import java.util.List;
final class FileEncodingConfigurable extends PerFileConfigurableBase<Charset> { final class FileEncodingConfigurable extends PerFileConfigurableBase<Charset> {
@@ -163,7 +163,7 @@ final class FileEncodingConfigurable extends PerFileConfigurableBase<Charset> {
} }
private static @NotNull Charset getDefaultCharset() { private static @NotNull Charset getDefaultCharset() {
if(Registry.is("properties.file.encoding.legacy.support", false)) { if(Registry.is("properties.file.encoding.legacy.support", true)) {
return StandardCharsets.ISO_8859_1; return StandardCharsets.ISO_8859_1;
} else { } else {
return StandardCharsets.UTF_8; return StandardCharsets.UTF_8;

View File

@@ -2543,7 +2543,7 @@ debugger.bring.debuggee.in.foreground.after.ms.description=Once the debugger ses
i18n.locale=en i18n.locale=en
i18n.locale.description=changes locale of the IDE i18n.locale.description=changes locale of the IDE
properties.file.encoding.legacy.support=false properties.file.encoding.legacy.support=true
properties.file.encoding.legacy.support.description=Switch the encoding for properties files to legacy ISO 8859-1 (used up to Java 8). Starting from Java 9, the default encoding is UTF-8. properties.file.encoding.legacy.support.description=Switch the encoding for properties files to legacy ISO 8859-1 (used up to Java 8). Starting from Java 9, the default encoding is UTF-8.
# please leave this note as last line # please leave this note as last line

View File

@@ -3,6 +3,7 @@ package com.intellij.codeInspection.i18n;
import com.intellij.lang.properties.UnsupportedCharacterInspection; import com.intellij.lang.properties.UnsupportedCharacterInspection;
import com.intellij.openapi.roots.LanguageLevelProjectExtension; import com.intellij.openapi.roots.LanguageLevelProjectExtension;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.vfs.encoding.EncodingManager; import com.intellij.openapi.vfs.encoding.EncodingManager;
import com.intellij.openapi.vfs.encoding.EncodingProjectManager; import com.intellij.openapi.vfs.encoding.EncodingProjectManager;
import com.intellij.pom.java.LanguageLevel; import com.intellij.pom.java.LanguageLevel;
@@ -27,10 +28,16 @@ public class UnsupportedCharacterInspectionTest extends JavaCodeInsightFixtureTe
public String getString(String key) { return null; } public String getString(String key) { return null; }
} }
"""); """);
Registry.get("properties.file.encoding.legacy.support").setValue(true);
} }
public void testJava8WithConversion() throws IOException { @Override
protected void tearDown() throws Exception {
Registry.get("properties.file.encoding.legacy.support").resetToDefault();
super.tearDown();
}
public void _testJava8WithConversion() throws IOException {
javaVersion(LanguageLevel.JDK_1_8); javaVersion(LanguageLevel.JDK_1_8);
PsiFile javaFile = addClass("Test.java", """ PsiFile javaFile = addClass("Test.java", """
@@ -73,7 +80,7 @@ public class UnsupportedCharacterInspectionTest extends JavaCodeInsightFixtureTe
checkHighlighting(javaFile); checkHighlighting(javaFile);
} }
public void testJava8PlusConstantWithConversion() throws IOException { public void _testJava8PlusConstantWithConversion() throws IOException {
javaVersion(LanguageLevel.JDK_1_8); javaVersion(LanguageLevel.JDK_1_8);
PsiFile javaFile = addClass("Test.java", """ PsiFile javaFile = addClass("Test.java", """

View File

@@ -63,7 +63,7 @@ public final class PropertiesFileType extends LanguageFileType {
} }
public @NotNull Charset getDefaultCharset() { public @NotNull Charset getDefaultCharset() {
if (Registry.is("properties.file.encoding.legacy.support", false)) { if (Registry.is("properties.file.encoding.legacy.support", true)) {
return StandardCharsets.ISO_8859_1; return StandardCharsets.ISO_8859_1;
} }
else { else {