Please review why the two pieces of code would produce different results. The goal is to return True or False if the input string has any character that is NOT in English language. 

Code 1:

```
def char_find(string):
    for char in string:
        if (ord(char) >= 0) and ord(char) <= 127:
            return True
        else:
            return False

result1 = char_find('爱奇艺PPS -《欢乐颂2》电视剧热播')
result2 = char_find('Docs To Go™ Free Office Suite')
result3 = char_find('Instachat ')
print(result1, result2, result3)

```

This produces the result False, True, True

Code 2:

```
def is_english(string):
    for char in string:
        if ord(char) > 127:
            return False
    return True

resultX = is_english('爱奇艺PPS -《欢乐颂2》电视剧热播')
resultY = is_english('Docs To Go™ Free Office Suite')
resultZ = is_english('Instachat ')
print(resultX, resultY, resultZ)

```

This produces the result False, False, False

I don't understand why the first piece of code yields incorrect results.