Correct “an” → “a” with “Unicode”, “user”, “UTF”, etc

This affects documentation and code comments.
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
index 3687f86..e58d954 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -1873,7 +1873,7 @@
    allows specifying the size of the array if the length of the string should not
    be used.
 
-   If the first parameter is a 8-bit string, it is converted into an unicode string
+   If the first parameter is a 8-bit string, it is converted into a unicode string
    according to ctypes conversion rules.
 
 
diff --git a/Doc/library/heapq.rst b/Doc/library/heapq.rst
index 16b2fd5..3dce037 100644
--- a/Doc/library/heapq.rst
+++ b/Doc/library/heapq.rst
@@ -244,7 +244,7 @@
 
    15 16   17 18   19 20   21 22   23 24   25 26   27 28   29 30
 
-In the tree above, each cell *k* is topping ``2*k+1`` and ``2*k+2``. In an usual
+In the tree above, each cell *k* is topping ``2*k+1`` and ``2*k+2``. In a usual
 binary tournament we see in sports, each cell is the winner over the two cells
 it tops, and we can trace the winner down the tree to see all opponents s/he
 had.  However, in many computer applications of such tournaments, we do not need
diff --git a/Doc/library/ic.rst b/Doc/library/ic.rst
index ab40e7a..5067084 100644
--- a/Doc/library/ic.rst
+++ b/Doc/library/ic.rst
@@ -83,7 +83,7 @@
 
 .. method:: IC.parseurl(data[, start[, end[, hint]]])
 
-   Find an URL somewhere in *data* and return start position, end position and the
+   Find a URL somewhere in *data* and return start position, end position and the
    URL. The optional *start* and *end* can be used to limit the search, so for
    instance if a user clicks in a long text field you can pass the whole text field
    and the click-position in *start* and this routine will return the whole URL in
diff --git a/Doc/library/io.rst b/Doc/library/io.rst
index 6743b27..3d28e63 100644
--- a/Doc/library/io.rst
+++ b/Doc/library/io.rst
@@ -661,7 +661,7 @@
 
 .. class:: TextIOBase
 
-   Base class for text streams.  This class provides an unicode character
+   Base class for text streams.  This class provides a unicode character
    and line based interface to stream I/O.  There is no :meth:`readinto`
    method because Python's :class:`unicode` strings are immutable.
    It inherits :class:`IOBase`.  There is no public constructor.
diff --git a/Doc/library/logging.handlers.rst b/Doc/library/logging.handlers.rst
index 6731abc..3690d86 100644
--- a/Doc/library/logging.handlers.rst
+++ b/Doc/library/logging.handlers.rst
@@ -743,7 +743,7 @@
 
    .. method:: emit(record)
 
-      Sends the record to the Web server as an URL-encoded dictionary. The
+      Sends the record to the Web server as a URL-encoded dictionary. The
       :meth:`mapLogRecord` method is used to convert the record to the
       dictionary to be sent.
 
diff --git a/Doc/library/ttk.rst b/Doc/library/ttk.rst
index 051601d..bf15e71 100644
--- a/Doc/library/ttk.rst
+++ b/Doc/library/ttk.rst
@@ -686,7 +686,7 @@
 headings. Columns may be accessed by number or symbolic names listed in the
 widget option columns. See `Column Identifiers`_.
 
-Each item is identified by an unique name. The widget will generate item IDs
+Each item is identified by a unique name. The widget will generate item IDs
 if they are not supplied by the caller. There is a distinguished root item,
 named ``{}``. The root item itself is not displayed; its children appear at the
 top level of the hierarchy.
diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst
index 64e7099..f74b89f 100644
--- a/Doc/library/webbrowser.rst
+++ b/Doc/library/webbrowser.rst
@@ -33,7 +33,7 @@
 browser and wait.
 
 The script :program:`webbrowser` can be used as a command-line interface for the
-module. It accepts an URL as the argument. It accepts the following optional
+module. It accepts a URL as the argument. It accepts the following optional
 parameters: ``-n`` opens the URL in a new browser window, if possible;
 ``-t`` opens the URL in a new browser page ("tab"). The options are,
 naturally, mutually exclusive.  Usage example::
diff --git a/Doc/library/xml.etree.elementtree.rst b/Doc/library/xml.etree.elementtree.rst
index 212a9e1..b588598 100644
--- a/Doc/library/xml.etree.elementtree.rst
+++ b/Doc/library/xml.etree.elementtree.rst
@@ -901,7 +901,7 @@
    to get proper namespace handling on output.  *text_or_uri* is a string
    containing the QName value, in the form {uri}local, or, if the tag argument
    is given, the URI part of a QName.  If *tag* is given, the first argument is
-   interpreted as an URI, and this argument is interpreted as a local name.
+   interpreted as a URI, and this argument is interpreted as a local name.
    :class:`QName` instances are opaque.
 
 
diff --git a/Doc/library/xml.sax.reader.rst b/Doc/library/xml.sax.reader.rst
index 6956cd1..7270153 100644
--- a/Doc/library/xml.sax.reader.rst
+++ b/Doc/library/xml.sax.reader.rst
@@ -101,7 +101,7 @@
 
    Process an input source, producing SAX events. The *source* object can be a
    system identifier (a string identifying the input source -- typically a file
-   name or an URL), a file-like object, or an :class:`InputSource` object. When
+   name or a URL), a file-like object, or an :class:`InputSource` object. When
    :meth:`parse` returns, the input is completely processed, and the parser object
    can be discarded or reset. As a limitation, the current implementation only
    accepts byte streams; processing of character streams is for further study.
diff --git a/Doc/library/xmlrpclib.rst b/Doc/library/xmlrpclib.rst
index 627a282..60fe579 100644
--- a/Doc/library/xmlrpclib.rst
+++ b/Doc/library/xmlrpclib.rst
@@ -434,11 +434,11 @@
    error.
 
 In the following example we're going to intentionally cause a :exc:`ProtocolError`
-by providing an URI that doesn't point to an XMLRPC server::
+by providing a URI that doesn't point to an XMLRPC server::
 
    import xmlrpclib
 
-   # create a ServerProxy with an URI that doesn't respond to XMLRPC requests
+   # create a ServerProxy with a URI that doesn't respond to XMLRPC requests
    proxy = xmlrpclib.ServerProxy("http://www.google.com/")
 
    try: