2016-03-12 3 views
10

Я скопировал и вставил эти две строки (один из Google Doc и один из терминала) - что происходит? И как я могу их очистить, чтобы они были такими же?Golang Почему эти две строки не равны?

package main 

import "fmt" 

func main() { 
    fmt.Println([]byte("f6f77482e4394a21815b7090bc0185b4")) 
    fmt.Println([]byte("f6f77482­e439­4a21­815b­7090bc0185b4")) 
} 

Возвращает:

[102 54 102 55 55 52 56 50 101 52 51 57 52 97 50 49 56 49 53 98 55 48 57 48 98 99 48 49 56 53 98 52] 
[102 54 102 55 55 52 56 50 194 173 101 52 51 57 194 173 52 97 50 49 194 173 56 49 53 98 194 173 55 48 57 48 98 99 48 49 56 53 98 52] 

которые явно два различных массивы байтов для одной и той же строки.

https://play.golang.org/p/_zd7tjqCZl

+0

Копирование первый и вставив его несколько раз дубликатов первая строка, а также вторая строка. Я думаю, что это имеет какое-то отношение к кодировке строк .. проверьте это: https://play.golang.org/p/fSgO40Nz_- – Lansana

ответ

13

Вторая имеет ряд «мягкий дефис» (U + 00AD) символы между символами видимыми, первым из которых появляется между «482» и «e4». Мягкий дефис - это символ, который невидим, если только он не находится в месте разрыва строки, затем он отображается как дефис. Вы скопировали код из текстового процессора или какой-либо другой программы, которая могла бы применить к нему специальное форматирование текста?

+0

Я действительно скопировал и вставлял фактически из режима предварительного просмотра документов Google. спасибо за то, что помогли мне распутать эту тайну – K2xL

+0

@ K2xL да, всегда будьте осторожны при копировании кода из приложений, которые не предназначены для работы с кодом, они могут делать с ними всевозможные смешные вещи :) – hobbs

4

Проблема в том, что у второго есть 4 Unicode Soft Hyphens 0+00ad, которые не могут быть напечатаны на игровой площадке.

То, что вы на самом деле делают в основном похожа на ...

fmt.Println([]byte("f6f77482e4394a21815b7090bc0185b4")) 
fmt.Println([]byte("f6f77482­-e439­-4a21-­815b­-7090bc0185b4")) 

Это то, что выглядит как вставить в Vim

This is a screenshot in vim

Смежные вопросы