title: SQL query generates undefined charmap
body: <p>This is the code I'm running, a SELECT command in a firebird database. </p>
  
  <p>I wish to write the contents of a certain table in a .txt file:</p>
  
  <pre class="lang-py prettyprint-override"><code>import fdb
  con = fdb.connect(dsn=defaultDSN, user=defaultUser, password=defaultPassword)
  cur = con.cursor()
  
  cur.execute("SELECT * FROM TableName")
  
  #I'm aware this erases everything in the file, this is intended
  file = open(file="FirebirdMirror.txt", mode="w+", encoding='utf-8', errors='ignore')
  file.write('')
  
  file = open(file="FirebirdMirror.txt", mode="a+", encoding='utf-8', errors='ignore')
  
  for fieldDesc in cur.description:
      file.write(fieldDesc[fdb.DESCRIPTION_NAME] + ', ')
  
  file.write("\n")
  
  for x in list(list(str(cur.fetchall()))):
      for y in x:
          file.write(str(y) + ', ')
      file.write('\n')
  
  
  file.close()
  </code></pre>
  
  <p>I have no clue as to why, but my cur.fetchall() returns something alien...</p>
  
  <pre class="lang-py prettyprint-override"><code>Traceback (most recent call last):
    File "C:/Users/graciele.davince/PycharmProjects/helloworld/venv/firebirdSQL.py", line 205, in &lt;module&gt;
      generate_text_file()
    File "C:/Users/graciele.davince/PycharmProjects/helloworld/venv/firebirdSQL.py", line 166, in generate_text_file
      for x in list(list(str(cur.fetchall()))):
    File "C:\Users\graciele.davince\PycharmProjects\helloworld\venv\lib\site-packages\fdb\fbcore.py", line 3807, in fetchall
      return [row for row in self]
    File "C:\Users\graciele.davince\PycharmProjects\helloworld\venv\lib\site-packages\fdb\fbcore.py", line 3807, in &lt;listcomp&gt;
      return [row for row in self]
    File "C:\Users\graciele.davince\PycharmProjects\helloworld\venv\lib\site-packages\fdb\fbcore.py", line 3542, in next
      row = self.fetchone()
    File "C:\Users\graciele.davince\PycharmProjects\helloworld\venv\lib\site-packages\fdb\fbcore.py", line 3759, in fetchone
      return self._ps._fetchone()
    File "C:\Users\graciele.davince\PycharmProjects\helloworld\venv\lib\site-packages\fdb\fbcore.py", line 3412, in _fetchone
      return self.__xsqlda2tuple(self._out_sqlda)
    File "C:\Users\graciele.davince\PycharmProjects\helloworld\venv\lib\site-packages\fdb\fbcore.py", line 2843, in __xsqlda2tuple
      value = b2u(value, self.__python_charset)
    File "C:\Users\graciele.davince\PycharmProjects\helloworld\venv\lib\site-packages\fdb\fbcore.py", line 486, in b2u
      return st.decode(charset)
    File "C:\Users\graciele.davince\AppData\Local\Programs\Python\Python38-32\lib\encodings\cp1252.py", line 15, in decode
      return codecs.charmap_decode(input,errors,decoding_table)
  UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 3234: character maps to &lt;undefined&gt;
  </code></pre>
  
  <p>My database might have certain characters from brazillian portuguese, namely:</p>
  
  <p>ç, â, ê, ô, ã, õ, á, é, í, ó, ú, à, and their capitalized cousins.</p>
  
  <p>From what I googled, it has something to do with how text is stored in form of bits, and the character represented by the 0x9d bit seems to be the issue.</p>
  
  <p>I'm using errors='ignore' but the error still shows up, using encoding='utf-8' and I have also tried latin-1, ISOnumbersnumbers, windows1252 and some others, but to no avail.</p>
  
  <ul>
  <li><strong>Constraints:</strong> I can't use any commands that change the contents of my table, and I necessairily have to store everything inside it in a .txt file. </li>
  </ul>
  
  <p><strong>ps.: columns in the same row must be separated by commas, and each row must be separated by \n</strong></p>
  
  <hr>
  
  <p>edit.:</p>
  
  <p>Mark's solution worked - but I'd like to add that it's a good idea to check what dialect your database is in.</p>