Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

strings: ToLower gives wrong result for uppercase Σ in the word-final position #33005

Open
zurk opened this issue Jul 9, 2019 · 2 comments
Open
Milestone

Comments

@zurk
Copy link

@zurk zurk commented Jul 9, 2019

What version of Go are you using (go version)?

$ go version
go version go1.12.5 darwin/amd64

Does this issue reproduce with the latest release?

yes

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/k/Library/Caches/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/k/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/kw/93jybvs16_954hytgsq6ld7r0000gn/T/go-build305684975=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

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

What did you expect to see?

The program output should be β︎δℕ︎ς because if you lowercase Σ at the last position of the word it becomes ς. See https://en.wikipedia.org/wiki/Sigma

Sigma (uppercase Σ, lowercase σ, lowercase in word-final position ς;

What did you see instead?

The output is β︎δℕ︎σ.


I am not sure it is the only case in all languages when lower case depends on the position. I just faced different behavior with python code:

t = "β︎Δℕ︎Σ"
print(t.lower()) # output: β︎δℕ︎ς
@agnivade agnivade changed the title strings.ToLower gives wrong result for uppercase Σ in the word-final position strings: ToLower gives wrong result for uppercase Σ in the word-final position Jul 9, 2019
@agnivade

This comment has been minimized.

Copy link
Contributor

@agnivade agnivade commented Jul 9, 2019

Does this need another unicode.SpecialCase in https://golang.org/pkg/strings/#ToLowerSpecial ?

I do see a TODO in unicode/casetables.go.

@robpike @ianlancetaylor

@ianlancetaylor

This comment has been minimized.

Copy link
Contributor

@ianlancetaylor ianlancetaylor commented Jul 9, 2019

CC @mpvl

@ianlancetaylor ianlancetaylor added this to the Go1.14 milestone Jul 9, 2019
@rsc rsc modified the milestones: Go1.14, Backlog Oct 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants
You can’t perform that action at this time.