=== on 1 Nov 2018, 09:56:15 Jean-Baptiste Lievremont wrote: Could you please provide a Java-specific description? === on 14 Nov 2018, 11:56:04 Alexandre Gigleux wrote: \[~jeanbaptiste.lievremont] Done (/) === on 30 Sep 2019, 11:32:24 Andrei Epure wrote: \[~nicolas.harraudeau] - the https://github.com/SonarSource/sonar-clang/blob/master/src/core/analyzers/ControlCharacterCheck.cpp#L73[CPP implementation] looks at \n, \t, \r, 0, nonBreakableSpaceCharacterCode in combination with other characters and at characters with code < 32. On the other side, https://discuss.sonarsource.com/t/new-rule-multiple-language-remove-invisible-characters-from-your-string/512/5[this internal discussion] mentions all invisible spaces characters. I guess we should aim for invisible spaces, right? And mention that in the RSPEC? Update the rule name (instead of control character, also invisible space?) === on 3 Oct 2019, 11:00:15 Alban Auzeill wrote: The Unicode characters set https://en.wikipedia.org/wiki/C0_and_C1_control_codes[C1] (from \u0080 to \u009F) is considered by some languages as control characters (e.g.: C# https://docs.microsoft.com/en-us/dotnet/api/system.char.iscontrol?view=netframework-4.8[Char.IsControl(Char)] ). But it's not true for all encodings. For example, Windows-1250 code page encodes euro sign (€ unicode \u20AC) by using \u0080, and it's not a control character. So if a source code is encoded using UTF-8, we can not guess what means characters between \u0080-\u00FF because it depends of the original code page used to write characters in this range before converting it to UTF-8. === on 20 May 2020, 11:11:36 Damien Urruty wrote: I think this rule could be extended (or maybe another one) to also check character literals. Examples in Java: String tabInside = "A B" + ' '; String zeroWidthSpaceInside = "foo​bar" + '​'; === on 26 May 2020, 15:11:29 Alban Auzeill wrote: \[~damien.urruty] I agree and I created [SONARJAVA-3433] === on 5 June 2023, 16:41:34 Gregory Paidis wrote: During a .NET LaYC sprint, i removed the following since they are neither implemented nor any implementation tickets exist: * ABAP * COBOL * Flex * Go * Javascript * PL/I * PHP * Python * RPG * Swift * T-SQL * VB6 * VB.NET