Most scanners use heuristics to detect character encoding, regardless of whether the default encoding is used (ISO-8859-1) or some other encoding (like UTF-8) is specified via an ECI extension. And these heuristics may fail in some conditions. You have to test your QR codes under the most probable scanners that will read your codes to figure out where there are fewer errors: with ISO-8859-1 or with UTF-8 and ECI. Just remember to not use a QR generator that does not include ECI in case of UTF-8 – in this case the QR codes generated would not be compliant to the standard.
Although ISO-8859-1 is default encoding for QR codes, this became so only after 2005 standard update. Earlier version of the standard, published in 2000 (ISO/IEC 18004:2000), did specify 8-bit Latin/Kana character set in accordance with JIS X 0201 (JIS8 also known as ISO-2022-JP) as default encoding for 8-bit mode.
As you know, there are 4 modes of storing text in a QR code: (1) numeric, (2) alphanumeric, (3) 8-bit, and (4) Kanji. So, QR code standard does not inherently support UTF-8. To use UTF-8 encoding (instead of the default “ISO-8859-1” or “JIS8”) in the 8-bit string, the implementation has to insert an ECI (Extended Channel Interpretations) before that string. ECI is an optional, additional feature for a QR Code, but it was defined in earliest QR code standard at least in 2000. ECI enables data encoding using character sets other than the default. It also enables other data interpretations (e.g. compacted data using defined compression schemes) or other industry-specific requirements to be encoded. The ECI protocol is defined in a specification developed by AIM, Inc, and is not available for free but can be purchased at $50 at https://www.aimglobal.org/technical-symbology.html
Unfortunately, not all QR scanners can handle the ECI protocol, even in such a basic thing as changing default encoding to UTF-8. Most implementations use heuristics, i.e. one or another character encoding detection algorithm for guessing the encoding, even if the encoding is specified explicitly in the ECI of the decoded QR code.
So, you just have to test your QR codes with various scanners to figure out which of the outcomes gives better results. There is no universal solution. Certain scanners will fail anyway because of errors in their heuristics. Only those that do not use heuristics (at least when ECI is provided) would not fail. As for me, I would have chosen ISO-8859-1 for two reasons. First, it does not mandate using ECI. Second, it is needed just one byte for ISO-8859-1 to encode non-US-ASCII characters such as á or ö, in comparison with UTF-8, where two bytes are needed for these characters. So you QR codes will be smaller with ISO-8859-1 not just because less bytes are needed to encode a ISO-8859-1 string, but also because it brings additional saving (of 2 bytes) by not including the ECI.