Question: I am trying to write a binary search program for a class, and I am pretty sure that my logic is right, but I keep getting a non-UTF-8 error. I have never seen this error and any help/clarification would be great! Thanks a bunch.

Here's the code. 

```
def main():

    str names = [‘Ava Fischer’, ‘Bob White’, ‘Chris Rich’, ‘Danielle Porter’, ‘Gordon Pike’, ‘Hannah Beauregard’, ‘Matt Hoyle’, ‘Ross Harrison’, ‘Sasha Ricci’, ‘Xavier Adams’]

    binarySearch(names, input(str("Please Enter a Name.")))

    print("That name is at position "+position)

def binarySearch(array, searchedValue):

    begin = 0 
    end = len(array) - 1 
    position = -1 
    found = False

    while !=found & begin<=end:
        middle=(begin+end)/2

        if array[middle]== searchedValue:
            found=True 
            position = middle
        elif array[middle] >value:
            end=middle-1
        else:
            first =middle+1
return position

```

Answer: 
Your editor replaced `'` (ASCII 39) with [U+2018 LEFT SINGLE QUOTATION MARK](http://codepoints.net/U+2018) characters, usually a sign you used Word or a similar wordprocessor instead of a plain text editor; a word processor tries to make your text 'prettier' and auto-replaces things like simple quotes with fancy ones. This was then saved in the [Windows 1252 codepage encoding](http://msdn.microsoft.com/en-gb/goglobal/cc305145.aspx), where the fancy quotes were saved as hex 91 characters.

Python is having none of it. It wants source code saved in UTF-8 and using `'` or `"` for quotation marks. Use notepad, or better still, IDLE to edit your Python code instead.

You have numerous other errors in your code; you cannot use spaces in your variable names, for example, and Python uses `and`, not `&` as the boolean AND operator. `!=` is an operator requiring 2 operands (it means 'not equal', the opposite of `==`), the boolean NOT operator is called `not`.
If you're using Notepad++, click `Encoding` at the top and choose `Encode in UTF-8`.