Junior
Героглифтер, кирилл жана башка белгилерди камтыган сапты кантип окуу керек?
sobes.tech AI
AIден жооп
Golang-da satırlar standart olaraq UTF-8 formatında təqdim olunur, bu isə müxtəlif əlifbalardan simvollar ilə işləmək üçün problem yaratmır, o cümlədən hierogliflər və kiril əlifbası. Belə satırları oxumaq üçün standart funksiyalar və paketlər kifayətdir.
Fayldan oxuma:
import (
"bufio"
"fmt"
"os"
)
func readStringFromFile(filename string) error {
file, err := os.Open(filename)
if err != nil {
return fmt.Errorf("faylı açarkən xəta: %w", err)
}
defer file.Close()
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text() // Sətir artıq UTF-8-dədir
fmt.Println(line)
}
if err := scanner.Err(); err != nil {
return fmt.Errorf("faylı skanerlarkən xəta: %w", err)
}
return nil
}
Standart girişdən oxuma:
import (
"bufio"
"fmt"
"os"
)
func readStringFromStdin() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Xət yazın: ")
line, _ := reader.ReadString('\n') // Sətir bayt dilimində oxunur və sonra stringə çevrilir (UTF-8)
fmt.Println("Siz daxil etdiniz:", line)
}
Simvollar (rune) üzərində iterasiya:
import "fmt"
func iterateString(s string) {
for i, r := range s { // Range, Unicode kod nöqtələri (rune) üzərində iterasiya edir
fmt.Printf("Vəzifə: %d, Runa: %c, Kod nöqtəsi: %U\n", i, r, r)
}
}
Əsas nöqtələr:
- Golang-də sətirlər dəyişməz bayt ardıcıllıqlarıdır.
- Standart olaraq UTF-8 kodlaması istifadə olunur. Bu, müxtəlif dillərdən olan simvolların düzgün təqdim olunmasını təmin edir.
rangeilə sətir üzərində iterasiya hər bir rune (Unicode kod nöqtəsi) ilə işləyir, hər bayt ilə deyil.
Əlavə:
Əgər mənbə məlumatları UTF-8-də deyilsə, kodlamanın çevrilməsi üçün standart kitabxana paketləri və ya xarici kitabxanalar, məsələn, golang.org/x/text/encoding, istifadə oluna bilər.