ใน OS X Lion LANG ไม่ได้ตั้งค่าเป็น UTF-8 จะแก้ไขได้อย่างไร


148

ฉันพยายามตั้งค่า postgress ใน OS X Lion และพบว่าการตั้งค่า LOCALE ไม่ถูกต้อง

นี่คือสิ่งที่ตั้งไว้:

LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=

ฉันคาดหวังบางอย่างกับ UTF-8 นี่คือการติดตั้ง OS X Lion แบบคลีนด้วยภาษาสเปน ฉันไม่ย้ายอะไรเลย

ฉันไม่ทราบวิธีการตั้งค่าเป็น UTF-8

ในการตั้งค่าเทอร์มินัลให้ตรวจสอบ UTF-8 และตั้ง LOCALE เป็นเปิดแม้ว่าจะไม่ได้ผลก็ตาม


2
มันแปลกมาก ควรทำงานในเทอร์มินัลโดยค่าเริ่มต้นสมมติว่าคุณใช้เชลล์เริ่มต้น (ทุบตี) และโปรไฟล์การตั้งค่าเทอร์มินัลเริ่มต้น (พื้นฐาน) โปรดทราบว่าถ้าคุณเปลี่ยนการเข้ารหัสหรือเปลี่ยน "ตั้งค่าตัวแปรสภาพแวดล้อมของสถานที่เกิดเหตุ" พวกเขาจะมีผลในเทอร์มินัลใหม่ไม่ใช่คนที่เปิดอยู่แล้ว
Chris หน้า

ฉันใช้ zsh (โดยใช้โปรแกรมติดตั้งของฉัน zsh!) อาจจะใช่มั้ย
mamcx

อาจ ลองใช้ zsh โดยไม่มีการกำหนดค่าแบบกำหนดเองเพื่อดูว่าปัญหาหายไปหรือไม่ ใช้Shell> New Commandเพื่อเรียกใช้zsh --no-rcsและzsh --no-rcs --no-global-rcsจำกัด ปัญหาให้แคบลง นอกจากนี้ให้ลองเรียกใช้localeคำสั่งโดยไม่มีเชลล์ผ่านคำสั่งใหม่และดูว่ารายงานนั้นมีอะไรบ้าง
Chris Page

@ChrisPage ฉันมีผลลัพธ์ที่แน่นอนเหมือนกับ OP ด้วยการตั้งค่าเหล่านั้นใน Terminal ฉันต้องset locale environment variablesปิดรีสตาร์ทเครื่องแล้วจึงเปิดเครื่องใหม่เพื่อให้ได้สภาพแวดล้อมที่เหมาะสมในการแสดง
Chris

มีคำตอบอย่างละเอียดคำถามนี้อยู่บนถามที่แตกต่างกัน
starfry

คำตอบ:


311

ฉันสังเกตเห็นปัญหาเดียวกันเมื่อเข้าสู่เซิร์ฟเวอร์ที่ใช้ Red Hat จากเครื่อง OSX Lion

ลองเพิ่มหรือแก้ไข~/.profileไฟล์เพื่อส่งออกการตั้งค่าภาษาของคุณอย่างถูกต้องเมื่อเริ่มเซสชันใหม่

export LC_ALL=en_US.UTF-8  
export LANG=en_US.UTF-8

สองบรรทัดเหล่านี้ที่ถูกเพิ่มลงในไฟล์ควรจะเพียงพอในการตั้งค่า locale [แทนที่en_USlocale ที่คุณต้องการและตรวจสอบก่อนว่ามันถูกติดตั้งในระบบของคุณ ( locale -a)]

หลังจากนั้นคุณสามารถเริ่มเซสชันใหม่และตรวจสอบโดยใช้locale:

$ locale

ต่อไปนี้ควรเป็นผลลัพธ์:

LANG="en_US.UTF-8"  
LC_COLLATE="en_US.UTF-8"  
LC_CTYPE="en_US.UTF-8"  
LC_MESSAGES="en_US.UTF-8"  
LC_MONETARY="en_US.UTF-8"  
LC_NUMERIC="en_US.UTF-8"  
LC_TIME="en_US.UTF-8"  
LC_ALL="en_US.UTF-8"  

2
นอกจากนี้ฉันแรกพบปัญหาขณะใช้ iTerm2 วิธีแก้ปัญหานี้ดูเหมือนจะใช้ได้กับทั้ง iTerm2 และ Terminal
wormintrude

1
ใช้เวลาหนึ่งชั่วโมงเพื่อดูคำตอบสำหรับเรื่องนี้ขอบคุณมากสำหรับการโพสต์ผู้ชายคนนี้ ฉันสามารถยืนยันได้ว่าใช้ได้ทั้งกับ Terminal และ iTerm2
Mariano Cavallo

7
ลิงก์ไม่ถูกต้อง
Vincent Sit

11
ฉันมี.bash_profileโฟลเดอร์ในบ้านของฉันและ.profileไม่ได้ถูกจัดหาเมื่อ.bash_profileมีอยู่ ฉันต้องการแหล่งข้อมูล.profileภายในด้วยตนเอง.bash_profile
BrunoJCM

3
น่าทึ่งที่ทำมันเพียงแค่บันทึกเมื่อคุณใช้ zsh ไม่ต้องงงเป็นฉัน ... config ที่มี~/.zshrc... ตอนนี้ใช้งานได้ดีเหมือน
เครื่องราง

20

ฉันเพิ่งมีปัญหาเดียวกันใน OS X Sierra ด้วย bash shell และขอบคุณคำตอบข้างต้นฉันเพียง แต่ต้องแก้ไขไฟล์

~/.bash_profile 

และต่อท้ายบรรทัดเหล่านั้น

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

1
มันช่วยได้จริงๆ ฉันไม่มีbash_profileและสร้างด้วยตนเอง และไม่มีการใส่exportไปbash_profileทุกครั้งที่เราได้รีเซ็ตขั้วภาษาจะย้อนกลับ
Phan Van Linh

7

นี่คือเสื้อคลุมกันมานาน ฉันเห็นตอนนี้เป็น OSX .. ฉันเปลี่ยนทั้งระบบและใช้งานได้สมบูรณ์

เมื่อฉันเพิ่ม LANG นี้ใน Centos6 และ Fedora ก็เป็น LANG ที่ฉันต้องการ นอกจากนี้คุณยังสามารถ "ยกเลิกการเลือก" การส่งออกหรือตั้งค่าภาษาในการตั้งค่าเทอร์มินัล (OSX) / ฯลฯ / โปรไฟล์

LC_ALL = en_US.UTF-8
ส่งออก LANG = en_US.UTF-8


5

หากคุณติดตั้งzshคุณยังสามารถอัปเดต~/.zprofileด้วย

if [[ -z "$LC_ALL" ]]; then
  export LC_ALL='en_US.UTF-8'
fi

และตรวจสอบผลลัพธ์โดยใช้localecmd ตามที่แสดงด้านบน

❯ locale                                                                                                                                           
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"

0

ฉันมีปัญหานี้กับ MacOS High Sierria

ภาพหน้าจอ 1

คุณสามารถตั้งค่าภาษาและภาษาในรูปแบบ UTF-8 ได้โดยใช้คำสั่งด้านล่าง:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

ภาพหน้าจอ 2

ตอนนี้เพื่อตรวจสอบว่ามีการปรับปรุงสภาพแวดล้อมของสถานที่ใช้คำสั่งด้านล่าง:

Locale

ภาพหน้าจอ 3


1
คำตอบนี้แตกต่างอย่างไรเมื่อเปรียบเทียบกับคำตอบที่ยอมรับ
เดนิส V

2
จุดประสงค์ของภาพแรกคืออะไร? มันไม่เหมือนกับอันสุดท้ายใช่ไหม
narengi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.