rubberduck-vba / Rubberduck

Every programmer needs a rubberduck. COM add-in for the VBA & VB6 IDE (VBE).
https://rubberduckvba.com
GNU General Public License v3.0
1.91k stars 300 forks source link

Indent function replacing German umlauts #5310

Closed blankster closed 4 years ago

blankster commented 4 years ago

Rubberduck version information Version 2.4.1.4627 OS: Microsoft Windows NT 10.0.18363.0, x64 Host Product: Microsoft Office x64 Host Version: 16.0.12228.20290 Host Executable: EXCEL.EXE

Description I've got some German "Umlauts" in Comments and some Text-Strings in my project. I can't really reproduce it, but from time to time it happens in different variations.

"Lücke" gets transformed to "Lücke".

To Reproduce Don't know why, but from time-to-time (IHMO after using the indent function in module-scope, umlauts get transformed into something above. I've used "ä, ö,or ü)

Logfile RubberduckLog.txt

Vogel612 commented 4 years ago

This replacement points to a mismatch in the encodings used when dealing with the text. This one looks like a conversion from Windows Codepage 1252 to UTF-8 and then back. Most likely the cause is in the way we handle rewrites for indenting.

That makes this issue closely related to #4906

MDoerner commented 4 years ago

Usually, we only run into such problems when we read the text from file, since we need to know the encoding. However, the Indenter uses the VBE API to read and write the text. Thus, it should be consistent.

My guess is that the problem is in some other place.

MDoerner commented 4 years ago

This issue might actually be the same issue as in the linked issue, which has been fixed after the last stable release. Based on the built number this issue is reported against the last stable.